尝试创建一个简单的java程序,该程序使用java GUI库简单地显示一个正方形,一个按钮和一个在点击时改变颜色的圆圈。一切都编译并运行,除非我无法通过(actionListener)按钮在每次点击时更改其文本!!
我尝试了一个常规的for循环和一个增强的for循环,但是我的按钮只会显示其原始文本,并且在cicking时只会显示ArrayList中的最后一个文本...
package chapter12;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
public class SimpleGui3C implements ActionListener {
JFrame frame;
JButton button;
public static void main(String [] args ) {
SimpleGui3C run = new SimpleGui3C();
run.go();
}
public void go() {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
button = new JButton("FUCKING GENIUS!");
button.addActionListener(this);
MyDrawPanel panel = new MyDrawPanel();
Gradient_Random gradient = new Gradient_Random();
frame.getContentPane().add(BorderLayout.CENTER, gradient);
frame.getContentPane().add(BorderLayout.SOUTH, button);
frame.setSize(300, 300);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent event) {
ArrayList<String> txtList = new ArrayList<String>();
txtList.add("bOOm!");
txtList.add("SpLaT!");
txtList.add("FUCKING GENIUS!");
txtList.add("whoOSH!");
txtList.add("PoW!");
for (String txt : txtList) {
frame.repaint();
button.setText(txt);
}
}
答案 0 :(得分:0)
我最终只是没有使用loop.DUH! (对吗?)每次调用该方法时,整个for循环将一直迭代。我真的很高兴没有人给我一个直接的回答,我收到的小推动足以让我朝着正确的方向前进。毕竟,在编程I PROMISE中,如果您通过尽力解决自己的问题找到解决方案,您将会学到更好的知识。这个网站很棒!
无论如何,我删除了整个for循环,只添加了2行
static int X;
并在actionPerformed()方法内添加了
button.setText(txtList.get(X);
答案 1 :(得分:0)
最后一个补充...... 在上一个答案中,按钮在四次单击后会抛出几个运行时异常。 (因为代码递增x,但数组的长度仅等于4)。我添加了这段代码来阻止它爆炸。您也可以使用Math.random * txtList.length并将结果转换回int变量...
Model.save()