到目前为止,我已经得到了这一点,但我一直在收到错误。我现在不知道发生了什么,我在线寻找教程,但我现在不知道如何解决我的问题。
JComboBox<String> cmdChoose = new JComboBox<String>();
cmdChoose.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (cmdChoose.getSelectedItem() == "Json Sign") {
/* I am getting the error here it is below it says mDataone
cannot be resolved so please help me! */
mDataone.setVisible(true);
}
if (cmdChoose.getSelectedItem() == "Summon") {
}
}
});
cmdChoose.setBounds(149, 11, 181, 27);
mainPage.getContentPane().add(cmdChoose);
cmdChoose.addItem("Json Sign");
cmdChoose.addItem("Summon");
cmdChoose.setSelectedItem(null);
Label cglbl = new Label("Command Generators:");
cglbl.setBounds(10, 16, 133, 22);
mainPage.getContentPane().add(cglbl);
JPanel mDataone = new JPanel();
mDataone.setBounds(10, 74, 324, 209);
mainPage.getContentPane().add(mDataone);
mDataone.setLayout(new GridLayout(1, 0, 0, 0));
您已经创建了一个用于处理动作的内部类,并且在它之后声明了mDataone,因此在处理动作事件之前创建它,但最好的方法是使其静态化。
你应该在你的代码中做的另一件事是你应该使用equals()或equalsIgnoreCase(),cmdChoose.getSelectedItem()。equalsIgnoreCase(“Json Sign”)。希望能帮助到你...
在将JPanel mdataone附加到JFrame之前,您可以看到它。您已将JPanel的声明放在代码的末尾,因此当在ActionPerformed()方法中调用setVisible()方法时,您会收到一条错误消息,指出未定义mdataone。因此,要解决此错误,您需要将以下代码从其实际位置(即从末尾)放到actionPerformed()方法的上面。
JPanel mDataone = new JPanel();
mDataone.setBounds(10, 74, 324, 209);
mainPage.getContentPane().add(mDataone);
mDataone.setLayout(new GridLayout(1, 0, 0, 0));
像这样?
JPanel mDataone = new JPanel();
mDataone.setBounds(10, 74, 324, 209);
mainPage.getContentPane().add(mDataone);
mDataone.setLayout(new GridLayout(1, 0, 0, 0));
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
mDataone.add(tabbedPane);
JPanel first_line = new JPanel();
tabbedPane.addTab("1st Line", null, first_line, null);
JPanel second_line = new JPanel();
tabbedPane.addTab("2nd Line", null, second_line, null);
JPanel third_line = new JPanel();
tabbedPane.addTab("3rd Line", null, third_line, null);
JPanel forth_line = new JPanel();
tabbedPane.addTab("4th Line", null, forth_line, null);
JComboBox<String> cmdChoose = new JComboBox<String>();
cmdChoose.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (cmdChoose.getSelectedItem() == "Json Sign") {
mDataone.setVisible(true);
}
if (cmdChoose.getSelectedItem() == "Summon") {
}
}
});
cmdChoose.setBounds(149, 11, 181, 27);
mainPage.getContentPane().add(cmdChoose);
cmdChoose.addItem("Json Sign");
cmdChoose.addItem("Summon");
cmdChoose.setSelectedItem(null);