希望你们能够提供帮助。
我希望这只是一个 b,我们能够解决。
I currently have a Java program with a JComboBox
. When the user changes the selected item in the combo box a JOptionPane
appears to allow the user to confirm the change.
当新选择在 com子箱中进行时,JOptionPane
看起来像所希望的那样,但你不得不两次点击使用。 这就是说,把它点击一次,以获得重点,然后点击你想要使用的 but子。 另一种方法是在“全球倡议”方案范围内(在选择Pane方案之后)点击,然后点击纽子。
不存在例外,方案职能一旦被点击,即正常。
这一功能只使用<代码>Nimbus。 Look AndFeel,而不是与本土的aco夫(在玉米、在窗户上测试的 have),但出于其他原因,我需要使用 n。
http://java.net/jira/browse/NIMBUS“rel=“nofollow” 纽布问题跟踪,但尚未发现过错。
I have JButton which calls the SAME code (ie JOptionPane.showConfirmDialog(...
) and this works perfectly, it s just when it s called from the action of the combo box.
Really hope you can help! Cheers in advance!
import javax.swing.UIManager.*;
import javax.swing.*;
public class TestJavaProblem extends JFrame {
JComboBox jComboBox1;
public TestJavaProblem() {
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
initComponents();
}
private void initComponents() {
jComboBox1 = new JComboBox();
//give it some values
jComboBox1.setModel(new DefaultComboBoxModel(new String[] { "1", "2"}));
//add listener
jComboBox1.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) { fireTask(evt);}
});
this.add(jComboBox1);
pack();
}
private void fireTask(java.awt.event.ItemEvent evt) {
if (evt.getStateChange() == 1) { //so dialog fires only once
int i = JOptionPane.showConfirmDialog(jComboBox1, "Message Text", "Title", JOptionPane.OK_CANCEL_OPTION);
System.out.println("Result:" + i);
}
}
public static void main(String args[]) {
try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (Exception e) {/*no nimbus*/}
new TestJavaProblem().setVisible(true);
}
}