我最近开始用Java编程。我想编写一个包含以下内容的窗口:
它的目的就像一个人聊天。在文本字段中写入,提交按钮,并将其打印在文本区域中,作为之前任何消息的附件。下一步,我将3个单选按钮命名为“用户1”、“用户2”和“用户3”,它们将在选择中打印:User_x.GetName(String)message;
我的第一次尝试是ActionListener。(这是一个原型):
ActionListener updateUserTalking = new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
JTextField tf = textField; //New message
JTextArea ta = textArea; //Previous message to track an history
String str = ta.getText()+"Radio button changed"; //This should print "User_x"
str = str+tf.setText(str+System.lineSeparator());
}
};
我的第二次尝试是ItemListener。(这是一个原型)
public void itemStateChanged(ItemEvent e) {
updateSystemMessage();
此updateSystemMessage()调用此方法:
ItemListener updateSystemMessage = new ItemListener(){
public void itemStateChanged(ItemEvent e) {
JTextField tf = textField; //New message
JTextArea ta = textArea; //Previous message to track an history
String str = ta.getText()+"RadioButton changed"; //This should print "User_x"
str = str+tf.setText(str+System.lineSeparator());
}
};
最新的打印一条双重消息。因为共享相同的方法。所以当选择更改时,有两次换向,因此此方法将被调用两次。我的问题来了:
我知道我可以为每个JRadioButton指定一种方法。我在猜测是否有办法使一种独特的方法可行。如果选择了JRadioButton,请将其名称作为ActionListener或ItemListener的参数。
我已经试过这样的方法:
private void updateSystemMessage() {
JRadioButton jrb = (JRadioButton)this.bGroup.getSelection();
this.system =jrb.getText();
}
但它不起作用,因为bGroup。getSelection()返回一个不能转换为(JRadioButton)的ButtonModel。所以有这样的方法吗?或者我必须为每个JRadioButton编写一个方法(谁基本上做相同的事情)?
行动事件。getSource()将返回在中生成的JRadioButton,因此您可以
ActionListener updateUserTalking = new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
JTextField tf = textField; //New message
JTextArea ta = textArea; //Previous message to track an history
JRadioButton jrb = (JRadioButton) arg0.getSource();
String str = ta.getText()+"Button "+jrb.getLabel();
str = str+tf.setText(str+System.lineSeparator());
}
或者,你可以打电话给JRadioButton。设置ActionCommand(“按钮1”),然后使用ActionEvent。getActionCommand()为每个按钮传递唯一的字符串。
JRadioButton user1 = new JRadioButton("User_1");
user1.setActionCommand("User_1");
ActionListener updateUserTalking = new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
JTextField tf = textField; //New message
JTextArea ta = textArea; //Previous message to track an history
String cmd = arg0.getActionCommand();
String str = ta.getText()+"Button "+cmd;
str = str+tf.setText(str+System.lineSeparator());
}
或者,也可以将actionCommand与ButtonModel一起使用。
private void updateSystemMessage() {
String actionCommand = this.bGroup.getSelection().getActionCommand();
this.system = actionCommand;
}
问题内容: 我有一个可能包含数千个对象的模型。我想知道什么是最有效的方式来存储它们并在获得ID后检索单个对象。ID是长数字。 这些是我正在考虑的两个选项。在选项一中,它是一个带有递增索引的简单数组。在选项2中,如果有区别,它是一个关联数组,也可能是一个对象。我的问题是,当我主要需要检索单个对象时,有时又遍历它们并进行排序时,哪一个效率更高。 具有非关联数组的选项一: 选项2与关联数组: 更新: 好
我更多地练习对象、数组和方法。现在我正在编写一个简单的簿记程序来添加一本书,按标题、作者、价格、库存编号和流派搜索书籍。我有几个问题,一是修复这个程序(在方法fillBook()中添加一本书),二是如何从对象类中删除一本书,三是如何使这个程序更高效 目前正在研究和阅读ioexception类。 这是我得到的错误java:66:错误:类手册中的构造函数手册不能应用于给定的类型 Book tempBo
问题内容: ActionListener和ItemListener均用于通过JCheckBox触发事件? 那么,它们之间有什么区别,在这种情况下,其中一个优先于另一个? 问题答案: 双方还有,在以下情况下都有相同的行为。但是,可以通过调用复选框来触发主要区别。作为编码的做法不都登记以及与以避免不一致。
主要内容:1 Java JRadioButton的介绍,2 Java JRadioButton的声明,3 Java JRadioButton的构造方法,4 Java JRadioButton的方法,5 Java JRadioButton的案例1,6 Java JRadioButton的案例21 Java JRadioButton的介绍 JRadioButton类用于创建单选按钮。它用于从多个选项中选择一个选项。它广泛用于考试系统或测验中。 应该将其添加到ButtonGroup中,以仅选择一个单选
【代码效率】页面主要反馈和分析项目运行过程中代码的 “CPU占用时间” 和 “堆内存分配” 情况。其中,这里所分析的代码既包含Unity引擎的自身模块代码,也包含您自己书写的逻辑脚本。通过该部分,您将快速掌握项目中逻辑代码的运行性能瓶颈,从而有的放矢地进行改进和优化。 CPU占用时间 函数汇总 该项主要显示项目运行过程中具有较高CPU占用的函数列表,包括函数的 “总CPU耗时”、“最大单次CPU占
问题内容: 如果一个方法填充/修改了一个对象,是否最好返回该对象或将返回类型保持为空,并且该方法将通过其引用来修改该对象? 我知道这是一个琐碎的问题,但是哪个是最优选的? 问题答案: 我取决于您的样式,但是返回的优点之一是:您可以调用,即可以链接方法调用。 例如,看看这是怎么做的,它允许这样的事情