在JLabel-javaswing中显示数组
我试图使用JLabel在JavaSwing中显示一个数组。此代码仅打印第一个下划线(389;)。不知道我做错了什么。我试着玩界外球,但没用在JLabel-javaswing中显示数组,java,swing,jlabel,Java,Swing,Jlabel,我试图使用JLabel在JavaSwing中显示一个数组。此代码仅打印第一个下划线(389;)。不知道我做错了什么。我试着玩界外球,但没用 dashes = new JLabel(); //display underscores for each letter in word for (int i = 0; i < temp.length; i++) { temp[i] = "_ "; dashes.setText(temp[i]); dashes.setBound
dashes = new JLabel();
//display underscores for each letter in word
for (int i = 0; i < temp.length; i++) {
temp[i] = "_ ";
dashes.setText(temp[i]);
dashes.setBounds(100, 100, 97, 33);
frame.getContentPane().add(dashes);
}
dash=new JLabel();
//显示单词中每个字母的下划线
对于(int i=0;i
我可以像这样附加文本:
StringBuilder sb = new StringBuilder();
for (int i = 0; i < temp.length; i++) { // initialize the array
temp[i] = "_ ";
sb.append(temp[i]);
dashes.setText(sb.toString());
dashes.setBounds(100, 100 + add, 97, 33);
frame.getContentPane().add(dashes);
}
StringBuilder sb=新建StringBuilder();
对于(int i=0;i
将“quot
分配给temp[i]
,然后在每次迭代时覆盖破折号中的值。似乎您需要在每次迭代中追加文本,或者为破折号创建一个新实例。如何追加文本@老实说,我在看到这是一个Java问题之前就回答了…该死的C语言!根据您似乎要做的事情:与其添加文本,不如尝试移动dashes=new JLabel()代码>在循环中。不清楚您真正想做什么。举个例子。例如,如果temp[0]是“abcde”,temp[1]是“defgh”,破折号中的文本应该是什么?您需要更新循环中的破折号
,在循环中构建字符串
,完成后,更新组件。避免使用null
布局,像素完美的布局在现代ui设计中是一种错觉。影响零部件单个尺寸的因素太多,您无法控制。Swing的设计初衷是与布局管理器一起工作,丢弃这些布局管理器将导致无止境的问题,您将花费越来越多的时间来纠正这些问题