我正在运行几行代码来创建可变数量的JLabel,每个JLabel都在自己的行中。这工作正常,直到我到达for循环的最后一个JLabel。这个总是卡在JFrame的左边缘。
这是我的代码:
package test;
import java.awt.EventQueue;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class MultipleLabelsTest {
private JFrame frame;
private ArrayList<JLabel> labels;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MultipleLabelsTest window = new MultipleLabelsTest();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public MultipleLabelsTest() {
initialize();
labels = new ArrayList<JLabel>();
createXTextBoxes(2);
}
private void createXTextBoxes(int i) {
for (int j = 0; j < i; j++) {
JLabel label = new JLabel("Number " + (j + 1));
label.setBounds(30, (18 + 20*j), 200, 16);
System.out.println(label.getBounds());
frame.getContentPane().add(label);
labels.add(label);
}
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
以下是结果的屏幕截图:http://imgur.com/8GZkrl1 控制台输出:http://imgur.com/n6U3brN
知道为什么会这样吗?
提前致谢。