JAVA 6x6网格着色游戏

时间:2012-03-25 12:10:03

标签: java swing colors jbutton

大家好,我现在最后一部分是文件阅读。我试过写一个fileReader,但似乎没有改变我的变量rNum的值?

关于为什么它不会在以下陈述中改变的任何想法?感谢

  public void readStartFile(String fileName){
    int rowNumber=-1;
    int colNumber = -1;
    int rN= 0;
    int cN = 0;
    try{
        // Open the file that is the first 
        // command line parameter
        FileInputStream fstream = new FileInputStream("start.txt");
        BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
        String strLine;
        //Read File Line By Line
        while ((strLine = br.readLine()) != null)   {
            String[] temp = strLine.split(" ");
             rowNumber = Integer.parseInt(temp[0].substring(1, temp[0].length()));
             colNumber = Integer.parseInt(temp[1].substring(1, temp[1].length()));
             String colour = temp[2];
            if(rowNumber == 0)
                rN =0;
            else if(rowNumber == 1)
                rN =1;
            else if(rowNumber == 2)
                rN =2;
            else if(rowNumber == 3)
                rN =3;
            else if(rowNumber == 4)
                rN =4;
            else if(rowNumber == 5)
                rN =5;

             if(colNumber == 0)
                cN =0;
            else if(colNumber == 1)
                cN =1;
            else if(colNumber == 2)
                cN =2;
            else if(colNumber == 3)
                cN =3;
            else if(colNumber == 4)
                cN =4;
            else if(colNumber == 5)
                cN =5;
            if (colour == "Red")
                buttons[rN][cN].setBackground(Color.RED);
            System.out.println(""+rN);
            System.out.println(""+cN);

            }
        //Close the input stream
        in.close();
    }catch (Exception e){//Catch exception if any
        System.err.println("Error: " + e.getMessage());
    }
}

这是ButtonColours类的方法。现在我如何将按钮设置为指定的颜色,因为我现在正在做的事情似乎不起作用。

4 个答案:

答案 0 :(得分:4)

不幸的是, 没有可靠的方法来更改任何JButton的颜色。一些“外观和感觉”实现不遵守setBackground()设置的颜色。你最好只是在面板中添加一个MouseListener来监听鼠标上升事件,然后对它们做出响应,而不是使用按钮。

答案 1 :(得分:2)

答案 2 :(得分:2)

为了更改Colour的{​​{1}},首先你必须记住一件事,总是使用JButton作为@Robin向我提出的建议:-)。从Java Docs中获取对buttonObject.setOpaque(true);

的调用
setOpaque(true/false)

这里我稍微修改了你的代码,并添加了一些关于我添加的内容的评论,看看这是你想要的。

Sets the background color of this component. The background color 
is used only if the component is opaque

这是这个东西的输出: - )

COLOUR BUTTONS

答案 3 :(得分:2)

L& F中更改按钮外观的一种方便可靠的方法是实现Icon界面,如example所示。

enter image description here