我正在进行一场扫雷游戏。我遇到的问题是我想在切换按钮上显示一个单词。我已经使用setText方法完成了这项工作,但是当我运行它时,单击时按钮上不会显示文本。
isMovingup = !isMovingup
}
答案 0 :(得分:0)
试试这个:
this.props.config.select.option
我认为在之后添加public Mine() {
initComponents();
for(int i = 0; i < hei ; i++)
{
for(int j = 0 ; j < wid;j++)
{
blocks[i][j] = new JToggleButton();
blocks[i][j].setSize(jPanel1.getWidth()/wid,jPanel1.getHeight()/hei);
blocks[i][j].setLocation(j*jPanel1.getWidth()/wid, i*jPanel1.getHeight()/hei);
blocks[i][j].addActionListener(listen);
jPanel1.add(blocks[i][j]);
}
}
}
之后添加侦听器的事实是导致问题的原因。
编辑#1:我也会尝试更改此内容:
JToggleButton
对此:
blocks[i][j].setText("Writing");
编辑#2:也许可以尝试使用((JComponent) e.getSource()).setText("Writing");
和revalidate()
,如下所示:
repaint()
编辑#3:如果编辑#2仍然不起作用,您的问题可能是您正在事件调度线程中执行所有操作。因此UI没有机会更新。您需要使用((JComponent) e.getSource()).revalidate();
((JComponent) e.getSource()).repaint();
或更好的Swing Timer(具有Action回调的那个)才能使其正常工作。 Here是如何使用Swing Timer的示例
祝你好运:)