【发布时间】:2016-04-10 13:26:59
【问题描述】:
所以,我知道有这个:
int number = Integer.parseInt("5");
String numtxt = Integer.toString(12);
double number = Double.parseDouble("4.5");
String numbertxt = Double.toString(8.2);
String letter = Character.toString('B');
char letter = "stringText".charAt(0);
so on...
但是我不知道如何使 String 值动态调用现有的 JButton 变量名;有可能吗?
假设我有 4 个 JButton,分别称为 btn1、btn2、btn3 和 btnFillNumber;
我创建了一个名为 buttonName 的字符串;
package testing;
public class Testing extends javax.swing.JFrame {
String buttonName;
int num;
public Testing() {
initComponents();
}
@SuppressWarnings("unchecked")
// Generated Code <<<-----
private void btnFillNumberActionPerformed(java.awt.event.ActionEvent evt) {
for(num = 1; num <= 3; num++){
buttonName = "btn" + Integer.toString(num);
JButton.parseJButton(buttonName).setText(num);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
// Look and feel stteing code (optional) <<<-----
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Testing().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btn1;
private javax.swing.JButton btn2;
private javax.swing.JButton btn3;
private javax.swing.JButton btnFillNumber;
// End of variables declaration
}
我知道没有JButton.parseJButton(),我只是不想做复杂的解释,我只是想从String转换为动态调用JButton的变量名。
看这个:
for(num = 1; num <= 3; num++){
buttonName = "btn" + Integer.toString(num);
JButton.parseJButton(buttonName).setText(num);
}
我想用一个字符串来做一个循环
- 一个固定的字符串值 (btn) 和
- 在它之后增加数字 (1, 2, 3...) 和
- 利用调用 JButton。
我可以简单地做到这一点,但如果我得到 25 或更多怎么办?所以我想要一个循环......
btn1.setText("1");
btn2.setText("2");
btn3.setText("3");
请注意,这些 JButton 的值在某些用途中不一定是递增的。
输出:
我的真实发展:
附:我使用在 NetBeans 设计中制作 JFrame(只需单击并拖动调色板窗口中的对象,如 JPanel、JButton 等,因此除了制作自己的逻辑方法外,我不会手动键入代码;而且我无法编辑代码源视图中的灰色背景,由设计视图自动创建,但在设计视图本身中。如果您有提示和指南,我会很乐意)。
【问题讨论】:
-
如果我理解这一点,那么一种方法可能是将按钮存储在
Map<String,JButton>中。之后您可以通过map.get("btn1")访问它们。 -
感谢您的快速回复,也许我会去看看.. 还在学习 Java。 :D
-
@Jan Jeremy 我的问题是,如果每个 JButton 都有静态值集或 JButton 的值可以在运行时更改,那么这个问题可以解决
-
@mKorbel 你是什么意思?你的意思是btn1-btn3的值? (可以通过 setText 更改)。不,它们不是静态的,它们可以分配给不同的值。
标签: java swing jbutton string-conversion