如何在java中的k-map中进行分组?

时间:2014-03-29 09:54:56

标签: java

我在java中不是那么好..我在一个项目中工作,在我的项目中程序应该绘制k-map,我用标签绘制它,它的作品很好..我只是想知道是否有通过改变标签的背景颜色来进行分组的任何简单方法..?问题是我没有任何有效的方法..唯一的方法是使用可能发生的所有概率将这些概率分组并将其放入if语句!!(我知道这将是概率的特殊情况,尤其是当变量的数量是四):(

像这样(我不会发布所有内容):

if(lbl1.getText().equals("1")&& lbl2.getText().equals("")&&lbl3.getText().equals("")&& lbl4.getText().equals("")&&lbl5.getText().equals("")&& lbl6.getText().equals("")
            &&lbl7.getText().equals("")&& lbl8.getText().equals("")&&lbl9.getText().equals("")&& lbl10.getText().equals("")&&lbl11.getText().equals("")&& lbl12.getText().equals("")
            &&lbl13.getText().equals("")&& lbl14.getText().equals("")&&lbl15.getText().equals("")&&lbl16.getText().equals("")){
        lbl1.setOpaque(true);
        lbl1.setBackground(Color.blue);
    }
 else if(lbl1.getText().equals("")&& lbl2.getText().equals("1")&&lbl3.getText().equals("")&& lbl4.getText().equals("")&&lbl5.getText().equals("")&& lbl6.getText().equals("")
            &&lbl7.getText().equals("")&& lbl8.getText().equals("")&&lbl9.getText().equals("")&& lbl10.getText().equals("")&&lbl11.getText().equals("")&& lbl12.getText().equals("")
            &&lbl13.getText().equals("")&& lbl14.getText().equals("")&&lbl15.getText().equals("")&&lbl16.getText().equals("")){
        lbl2.setOpaque(true);
        lbl2.setBackground(Color.blue);
    }
else if(lbl1.getText().equals("")&& lbl2.getText().equals("")&&lbl3.getText().equals("")&& lbl4.getText().equals("")&&lbl5.getText().equals("1")&& lbl6.getText().equals("")
            &&lbl7.getText().equals("")&& lbl8.getText().equals("")&&lbl9.getText().equals("")&& lbl10.getText().equals("")&&lbl11.getText().equals("")&& lbl12.getText().equals("")
            &&lbl13.getText().equals("")&& lbl14.getText().equals("")&&lbl15.getText().equals("")&&lbl16.getText().equals("")){
        lbl5.setOpaque(true);
        lbl5.setBackground(Color.blue);
    }
  else if(lbl1.getText().equals("")&& lbl2.getText().equals("")&&lbl3.getText().equals("")&& lbl4.getText().equals("")&&lbl5.getText().equals("")&& lbl6.getText().equals("1")
            &&lbl7.getText().equals("")&& lbl8.getText().equals("")&&lbl9.getText().equals("")&& lbl10.getText().equals("")&&lbl11.getText().equals("")&& lbl12.getText().equals("")
            &&lbl13.getText().equals("")&& lbl14.getText().equals("")&&lbl15.getText().equals("")&&lbl16.getText().equals("")){
        lbl6.setOpaque(true);
        lbl6.setBackground(Color.blue);
    }
  else if(lbl1.getText().equals("1")&& lbl2.getText().equals("1")&&lbl3.getText().equals("")&& lbl4.getText().equals("")&&lbl5.getText().equals("")&& lbl6.getText().equals("")
            &&lbl7.getText().equals("")&& lbl8.getText().equals("")&&lbl9.getText().equals("")&& lbl10.getText().equals("")&&lbl11.getText().equals("")&& lbl12.getText().equals("")
            &&lbl13.getText().equals("")&& lbl14.getText().equals("")&&lbl15.getText().equals("")&&lbl16.getText().equals("")){
        lbl1.setOpaque(true);
        lbl1.setBackground(Color.blue);
        lbl2.setOpaque(true);
        lbl2.setBackground(Color.blue);
    }

1 个答案:

答案 0 :(得分:2)

使用名为labels的所有16个标签的数组(或列表),类似于:

for (final JLabel label : labels) {
    // reset others?
    if ("1".equals(label.getText()) {
        label.setOpaque(true);
        label.setBackground(Color.blue);
    }
}