我在NetBeans中创建了一个GUI。这是一个聊天程序,我有4个突击队,如/ join,/ leave,/ whisper和/ leave
private void CommandoActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showMessageDialog(rootPane, "The following commandos are:" + "\n" + "\n" + "/join Channel name" + "\n" + "/leave channel name" + "\n" + "/whisper nick message" + "\n" + "/quit - quit the program");
}
这没关系,但我想要actionlister而不是showMessageDialog,所以我可以推送它们,它来自我的JTextField。我想我可以把它们带到那里,但我不知道如何将动作滑动器与此结合起来。
编辑: 我想要的是按下Commando按钮并启动一个窗口,我有4个新按钮,每个按钮有一个突击队(/ join,/ leave,/ whisper和/ exit)所以当我按下这些按钮时,我会得到突击队在我的文本字段中,所以我只需要编写其余内容。 因此,如果我按下“/ join”按钮,我只需要编写频道名称。
EDIT2:如果我在描述这个问题时非常糟糕,我可以展示我想要的和迄今为止所做的事情:
private void showCommandActionPerformed(java.awt.event.ActionEvent evt) {
Object[] options = { "/join", "/leave", "/whisper", "/quit", "Ingenting" };
int choice= JOptionPane.showOptionDialog(rootPane, "What do u want to do? ", null, WIDTH, WIDTH, null, options, rootPane);
switch (choice) {
case 0:
skrivTekst.setText("/Join ");
skrivTekst.requestFocus();
break;
case 1:
skrivTekst.setText("/Leave");
skrivTekst.requestFocus();
break;
case 2:
skrivTekst.setText("/Whisper");
skrivTekst.requestFocus();
break;
case 3:
skrivTekst.setText("/Join ");
skrivTekst.requestFocus();
case 4:
System.exit(1); //this is wrong. i just want to close this window, not the whole program
default:
JOptionPane.showMessageDialog(null, "donno what!?!?!?!?!?!?!" + choice);
}
}
我希望这能表明我想要的和我所做的。对所有人来说:) 所以我唯一的问题是关闭一个JOptionPane窗口而不是程序
答案 0 :(得分:2)
1)您可以在JRadioButtons中实施ButtonGroup,然后只有其中一个选项可供选择,您可以在ActionListener
和ActionListener
内{ {1}} {1}} setText()
2)请使用标准Swing JTextField
而不是JComponents
准备Components
,有时候太难以覆盖基本的Swing方法
基于示例的简单示例,来自教程
的JRadioButtonpalette
答案 1 :(得分:1)
你想要4个按钮,每个按钮在文本字段中设置命令文本,是吗?
joinButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
theTextField.setText("/join");
}
});
对其他3个按钮也一样。
这是非常基本的东西。阅读tutorial about event listeners。
答案 2 :(得分:0)
这样的东西?
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
if (source == join) {
textField.setText("/join");
} else if (source == leave) {
textField.setText("/leave");
} else if (source == whisper) {
textField.setText("/join");
} else {
textField.setText("/exit");
}
}
这是假设你的按钮被命名为join,leave,whisper和exit。