[英]custom dialog java swing
我正在尝试编写一个自定义 SwingUtilities.InvokeandWait 事件,其中包含 Textarea 和 Button,因此一旦用户将数据粘贴到 Textarea 并单击按钮。 直到那时控制不应该 go 下来,但不能使它正常工作。
我发现最好的方法是使用对话框消息,所以现在我尝试在 InputDialogBox 中添加更大的 TextArea 而不是单行文本字段。 我还尝试创建一个自定义对话框,但 InvokeandWait 甚至只是触发对话框并转到我不想要的下一行。
我需要专家的帮助
JDialog 就像 JFrame 一样。 您可以添加任何您想要的组件。
此外,您不使用 invokeAndWait()。 只需将对话框设为模态,它就会按照您想要的方式工作。
创建自定义对话框的一个简单示例 -
public class CustomDiaglogBox extends JFrame
{
// Variables declaration
private JLabel jLabel_Item;
private JLabel jLabel_Value;
public static JButton jButton_Add;
private JPanel contentPane;
public static JComboBox combo_item;
public static JComboBox combo_value;
public static JTextField text_Value;
public static JTextArea textArea_desc;
// End of variables declaration
public CustomDiaglogBox()
{
super();
create();
this.setVisible(true);
}
private void create()
{
jLabel_Item = new JLabel();
jLabel_Value = new JLabel();
jLabel_Description = new JLabel();
combo_value = new JComboBox();
text_Value = new JTextField();
textArea_desc = new JTextArea(20,20);
combo_item = new JComboBox(new String[]{""});
combo_item.setSelectedIndex(-1);
jButton_Add = new JButton();
contentPane = (JPanel)this.getContentPane();
//
// jLabel1
//
jLabel_Item.setHorizontalAlignment(SwingConstants.LEFT);
//jLabel_Item.setForeground(new Color(0, 0, 255));
jLabel_Item.setText("Item");
//
// jLabel2
//
jLabel_Value.setHorizontalAlignment(SwingConstants.LEFT);
// jLabel_Value.setForeground(new Color(0, 0, 255));
jLabel_Value.setText("Value");
// jButton1
//
jButton_Add.setBackground(new Color(204, 204, 204));
jButton_Add.setForeground(new Color(0, 0, 255));
jButton_Add.setText("Add");
jButton_Add.setEnabled(false);
jButton_Add.addActionListener(new AddTagWidnowListener()); //
// contentPane
//
contentPane.setLayout(null);
contentPane.setBorder(BorderFactory.createEtchedBorder());
contentPane.setBackground(Color.WHITE);
addComponent(contentPane, jLabel_Item, 5,10,106,18);
addComponent(contentPane, jLabel_Value, 5,47,97,18);
addComponent(contentPane, new JLabel("Description"), 5,87,97,18);
addComponent(contentPane, combo_item, 110,10,183,22);
addComponent(contentPane, combo_value, 110,45,183,22);
addComponent(contentPane, new JScrollPane(textArea_desc), 110,75,183,62);
addComponent(contentPane, jButton_Add, 150,145,83,28);
this.setTitle("MY CUSTOM DIALOG");
this.setLocation(new Point(276, 182));
this.setSize(new Dimension(335, 221));
this.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
this.setResizable(false);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.