我是Java的新手。我正在大学做一个关于JavaSwing的项目。
我想要的功能就像当我在JComboBox中选择项目时,它应该显示一个新的AlwaysOnTop框架,该框架中带有选定项目名称的标签,当我选择另一个项目时,它应该只更新框架中的标签早些时候创建。
Here is my code:
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import Swing_Package.ToolbarFrame2;
public class JComboBoxExample extends JPanel{
JComboBox cards;
public JComboBoxExample(){
String[] items = {"Item 1", "Item 2", "Item 3"};
cards = new JComboBox(items);
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
cards = (JComboBox)e.getSource();
System.out.println(cards.getSelectedItem()+" ");
}
};
add(cards);
cards.addActionListener(listener);
}
public static void createAndShowGUI(){
JFrame frame = new JFrame("ComboBox Demo");
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
JComboBoxExample content = new JComboBoxExample();
content.setOpaque(true);
frame.setContentPane(content);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args){
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
createAndShowGUI();
}
});
}
}
因此,不是在控制台上显示所选项目,而是应该在具有相应选择的新帧中。
答案 0 :(得分:2)
1)使用JFrame创建AlwaysOnTop frame
太难了,您必须使用JDialog或ModalityType
2)将ItemListener(始终调用两次SELECTED
和DESELECTED
个事件)添加到JComboBox而不是ActionListener