Java 如何通过组合框选择打开另一个jFrame?

Java 如何通过组合框选择打开另一个jFrame?,java,netbeans,jcombobox,Java,Netbeans,Jcombobox,我是Java初学者,我正在尝试创建一个简单的虚拟库,用户可以通过组合框选择来浏览书籍(书籍将包含在jFrame中)。当用户从列表中选择一本书并按“OK”时,它将根据用户的选择将其带到另一个特定的jFrame。 我怎样才能做到这一点?我使用的是Netbeans IDE 12.2如果你的书是独立的类,你可以分别调用它们。假设这些分离的类在JFrame中 class book1 extends JFrame{ //book contents } class book2 extends JFram

我是Java初学者,我正在尝试创建一个简单的虚拟库,用户可以通过组合框选择来浏览书籍(书籍将包含在jFrame中)。当用户从列表中选择一本书并按“OK”时,它将根据用户的选择将其带到另一个特定的jFrame。
我怎样才能做到这一点?我使用的是Netbeans IDE 12.2

如果你的书是独立的类,你可以分别调用它们。假设这些分离的类在JFrame中

class book1 extends JFrame{
  //book contents
}

class book2 extends JFrame{
  //book contents
}

class book3 extends JFrame{
  //book contents
}

public class Main { //this class can also be in a GUI
   public static void main(String args[]){
     String booklist[] = { "Book1", "Book2", "Book3"};

     JComboBox myBooks = new JComboBox(booklist);
     
     //Add an event listener based on your preference. Code below is just for example im not sure if its the right syntax but you get the point.
     mybook.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e) {
          String value = (String) myBooks.getSelectedItem(); // get the selected item in the combobox
        switch(value){
        case "Book1":
            book1 b1 = new book1(); // call the class
            b1.setVisible(true);    // set the jframe to visible 
            break;
        case "Book2":
            book2 b2 = new book2();
            b2.setVisible(true);
            break;
        case "Book3":
            book3 b3 = new book3();
            b3.setVisible(true);
            break;
        }          
      }
    });
  }
}

希望我能帮上忙。

您使用的是什么IDE?另外,如果它的eclipse使用的是window builder?我使用的是Netbeans IDE 12.2,它会显示一个开关大小写错误,即“不兼容类型:JComboBox无法转换为int'(1-)1)类名不应以大写字符开头。遵循Java约定。通过示例学习API中的类名。2) 一个应用程序应该只有一个JFrame。子窗口应该是JDialog。@camickr抱歉。我知道类名应该以小写字母开头,但我没有注意到这一点。2.我在回答他的“问题”,他说书在jframe里面。@Schwiro我忘了。您需要获取所选项目<代码>字符串值=(字符串)myBooks.getSelectedItem()操作case@GeromeTahud,回答一个问题的一部分是建议一个更好的方法。