1

我在 JAVA Swing Netbeans IDE 7.1 中做一个项目。我创建了一个带有一些按钮和下拉菜单的 jFrame。从下拉列表中选择一个选项后,会创建另一个框架对象并将 setVisible 设置为 true。但不是显示一个窗口,而是显示了 2 个窗口。还有其他类似的电话,但没有一个有这个问题,请有人帮助我。谢谢。

代码:

private void itemListItemStateChanged(java.awt.event.ItemEvent evt) {                                          

        String item = null;
        String filename = null;
        item = (String) itemList.getSelectedItem();
        if(item=="P"){

            filename="p";
            description.setText("Description:  P");
        }
        else if(item=="A"){

            filename="a";
            description.setText("Description:  A");
        }
        else if(item=="R"){

            filename="r";
            description.setText("Description:  R");
        }

        else if(item=="S"){

            filename="s";
            description.setText("Description:  S");
        }

        else if(item=="X"){
            displayText.setText("");
            x xl = new x();
            xl.setVisible(true);

        }

        else if(item=="Xx"){

            filename="xx";
            description.setText("Description: xx");
        }

        else {
            System.out.println("invalid selection.");

        }


        if (item=="X"){
            return;
        }
        else {
             displayText.setText("");

            BufferedReader b = null;
        try {
            b= new BufferedReader(new FileReader ("/home/sfred/"+filename+".mile"));

        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        }
        try {
            line = b.readLine();
        } catch (IOException ex) {
           ex.printStackTrace();
        }

        while (line != null){
            displayText.append(line + "\n");
            try {
                line=b.readLine();
            } catch (IOException ex) {
                ex.printStackTrace();
            }

        }
        }
4

1 回答 1

3
  • 请参阅使用多个 JFrame,好/坏做法?而是使用:

    1)JDialog

    2)CardLayout这将允许您在单个JFrame.

  • 您不能比较Stringusing==运算符必须使用equals(String s),否则它不会正确评估

    if(item.equals("X")) {
    }
    
  • 比较时使用switch语句(Java 7+)String

    switch(item) {
        case "P":
            //do something
        break;
    
        case "X":
           //do something
        break;
    
        default:
           //if no match with above was found..
        break;
    }
    
于 2012-12-06T09:45:21.930 回答