我在JFrame的容器上绘制了一个JTextFields矩阵(15 X 15)(空布局)。问题是我看到每个JTextField都是慢慢地逐个绘制的。如果我在其(setText)中放置至少一个字符,则仅显示JTextFields。如何加速代码,让每个人一次显示,并在没有放置字符的情况下显示?
cell = new Cell[lin][col];
for (int l = 0; l < lin; l++) {
for (int c = 0; c < col; c++) {
cell[l][c] = new Cell();
cell[l][c].setBounds(iniLeftTop.getX(), iniLeftTop.getY(), sideCell, sideCell);
cell[l][c].setText("A"); // without this line JTextField is not shown
container.add(celula[l][c]);
iniLeftTop.x = iniLeftTop.x + sideCell + 1;
}
iniLeftTop.x = iniLeft;
iniLeftTop.y = iniLeftTop.y + sideCell + 1;
}
非常感谢您的帮助。
答案 0 :(得分:0)
您发布的代码很可能执行得非常快(您可以通过比较代码块的开头和结尾处的System.currentTimeMillis()
来衡量它。)
如果测量的时间很短,您的GUI可能不会因为以下原因而更新:
SwingUtilites.invokeLater()
revalidate()
和repaint()
应该在您的代码块之后调用(以及在swing线程上)