编写一个程序,以在按下+1按钮时使计数器递增,然后在计数器达到一定数量时,删除+1按钮并将其替换为+2按钮,依此类推。我首先创建两个按钮,但只是将btnCount1设置为setVisible(false)。当特定数字过去时,我使btnCount不可见,使btnCount1可见,并从此处递增2。当它达到10次点击时,btnCount消失,但是btnCount1没有出现。
我尝试制作一个if(arg0.equals(btnCount1)),然后从那里递增2。我尝试将add(btnCount1)放入else if语句中,以便在elseif条件成立后创建它。
public class AWTCounter extends Frame implements ActionListener
private Label lblCount;
private TextField tfCount;
private Button btnCount;
private Button btnCount1;
private int count = 0;
public AWTCounter() {
setLayout(new FlowLayout());
lblCount = new Label("Counter");
add(lblCount);
tfCount = new TextField(count + "",10);
tfCount.setEditable(false);
add(tfCount);
btnCount = new Button("Add 1");
btnCount1 = new Button("Add 2");
add(btnCount);
add(btnCount1);
btnCount1.setVisible(false);
btnCount.addActionListener(this);
btnCount1.addActionListener(this);
setTitle("AWT Counter");
setSize(500,500);
}
public static void main(String[]args) {
AWTCounter app = new AWTCounter();
}
public void actionPerformed(ActionEvent arg0) {
if(count <= 10) {
++count; //Increase the counter value
tfCount.setText(count + "");
}else if(count > 10) {
btnCount.setVisible(false);
btnCount1.setVisible(true);
count += 2;
tfCount.setText(count + "");
}
}
答案 0 :(得分:0)
这里更好的解决方案是仅使用一个按钮对象和一个用于当前增量量的单独变量。当您达到所需的计数时,将增量和change the button's label增加到新值。
还有一些其他可以做得更好的事情。
String.valueOf()
代替int + ""
来表示String
的整数。Labels
而不是TextFields
。我也将lblCount
的名称也更改为lblTitle
,因为将您的tfCount
更改为Label
会在逻辑上占用该名称,并且{ {1}}更有意义。
这是实现lblTitle
的更好方法:
actionPerformed