我正在做一个简单的java应用程序,它基本上从一个数组中显示一定数量的字母(ABCDE等),每个显示在一个网格的一部分中。有两个按钮,一个将字母向左移动(这样一个班次将变为BCDEA,右侧班次将变为EABCD)。
我已经进行了转换,其他一切正常,因为我已经使用系统输出进行了测试。但是如何让窗口刷新并向我显示更新的JLabel?我转移后它们保持不变(ABCDE)。
我在按钮的ActionListeners和他们调用的shift方法中尝试了revalidate()和repaint(),但没有任何反应。关于这个的任何提示?
答案 0 :(得分:2)
我尝试过revalidate()和repaint()
只有在创建新组件并将组件添加到可见GUI时才使用这些方法。所以听起来您正试图以新的顺序删除/添加标签,以便显示标签。
也许更简单的方法是将标签保留为相同的顺序,只需更改每个标签上的文字即可。那么你需要做的就是
label.setText();
并且标签将自动重新绘制,而无需调用revalidate()和repaint()。