想编一个java swing的窗口程序,总是不对……怎么办呀T_T(附代码)
想编一个计算窗口,有两个按钮分别是Count Up 和 Count Down,功能为加1和减1,一行字为“Count is:0”
后面那个0就是如果点Count Up按钮,就变成1,再点就变2……,同理点Count Down时那个0就减1,变成负的也可以。
我编的代码如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Counter extends JFrame
{
public Counter()
{
super("Counter");
JPanel counting=new JPanel();
counting.setLayout(new FlowLayout());
JButton countUp=new JButton("Count Up");
JButton countDown=new JButton("Count Down");
counting.add(countUp);
counting.add(countDown);
counting.add(new JLabel("Count is:"));
add(counting);
setContentPane(counting);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
countUp.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event1)
{
if (countUp.isSelected()) //这个地方出错了,说内部类引用时要先定义为final
{
int n=n+1;
counting.add(new JLabel("Count is:"+n));
}
}
});
countDown.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event2)
{
if (countDown.isSelected())
{
int n=n-1;
counting.add(new JLabel("Count is:"+n));
}
}
});
}
public static void main (String args[])
{
new Counter();
}
}
我是菜鸟级的。。。求指导!!!!!谢谢啦!!!
答案:package com;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Counter extends JFrame {
JLabel label = new JLabel("Count is:");
public Counter() {
super("Counter");
final JPanel counting = new JPanel();
counting.setLayout(new FlowLayout());
final JButton countUp = new JButton("Count Up");
final JButton countDown = new JButton("Count Down");
countUp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event1) {
A.n++;
label.setText("Count is:" + A.n);
//counting.add(new JLabel("Count is:" + A.n));
}
});
countDown.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event2) {
A.n--;
label.setText("Count is:" + A.n);
//counting.add(new JLabel("Count is:" + A.n));
}
});
counting.add(countUp);
counting.add(countDown);
counting.add(label);
add(counting);
setContentPane(counting);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String args[]) {
new Counter();
}
}
class A {
static public int n = 0;
}
其他:不知道 不是 .isSelected(),你看看有没有按钮按一下那个函数。
上一个:java中for (Integer i : a)什么意思 map容器里的
下一个:java java.lang.StringIndexOutOfBoundsException错误