#java #swing
#java #swing
Вопрос:
Я новичок в 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();
}
});
}
}
Поэтому вместо отображения выбранного элемента на консоли он должен отображаться в новом фрейме с соответствующим выбором.
Комментарии:
1. Ваш пост не содержит ‘?’. В чем ваш вопрос?
2. Когда я выбираю элемент из JComboBox, должен появиться новый фрейм с сообщением или JLabel выбранного элемента. Допустим, у меня есть 3 элемента (пункт 1, пункт 2, пункт 3) в выпадающем списке, когда я выбираю «Пункт 1», должен появиться новый фрейм, в котором будет отображаться «Вы выбрали: пункт 1».
3. Единственными вопросительными знаками в этом сообщении являются 2, которые я написал, — так что вы все еще не задали вопрос. Это не ракетостроение.
4. Привет, Эндрю, при всем уважении, я новичок на этом сайте, и я все еще не уверен, что вы просите меня сделать, просто игнорируйте меня, если вы не заинтересованы в ответе на мой вопрос выше
Ответ №1:
1) его слишком сложно создать AlwaysOnTop frame
с помощью JFrame, вам нужно искать JDialog с ModalityType или setModal(Boolean)
2) добавьте ItemListener (всегда вызывает дважды SELECTED
и DESELECTED
события) в JComboBox вместо ActionListener
Комментарии:
1. @rockwire: это ваше решение: используйте JDialog. (1 )