当前位置:编程学习 > JAVA >>

想编一个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错误

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,