Java程序没有错,但是Console有问题,没运行结果(秒表)

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
//import java.util.TimerTask;
import javax.swing.Timer;

import javax.swing.*;

public class StopwatchFrame extends JFrame implements ActionListener
{
private static final long serialVersionUID = -1947098583246834192L;
JButton startButton; //启动按钮
JButton stopButton; //暂停按钮
JButton countButton; //完成按钮
JButton resetButton; //复位按钮
JLabel timeLabel;
JTextArea resultArea;
Timer myTimer;
int minute; //分
int second; //秒
int donknow; //秒后的单位
int numberFinish; //记录的次数

     StopwatchFrame(String s)
    {

        super(s);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Container contentPane = getContentPane();
        contentPane.setLayout(new CardLayout(4,4));

        JPanel mainPanel = new JPanel(new BorderLayout());
        JPanel resultPanel = new JPanel(new CardLayout(4,4));
        JPanel timePanel = new JPanel(new CardLayout(45,4));
        //JPanel timeFlowPanel = new JPanel(new FlowLayout());
        JPanel buttonCardPanel = new JPanel(new CardLayout(4,4));
        JPanel buttonPanel = new JPanel(new GridLayout(4,1,0,3));
        JPanel westPanel = new JPanel(new BorderLayout());

        startButton = new JButton("开始/继续");
        stopButton = new JButton("暂停");
        countButton = new JButton("计数");
        resetButton = new JButton("复位");
        timeLabel = new JLabel("00:00:00");

        timeLabel.setFont(new Font("微软雅黑",Font.PLAIN,35));
        timeLabel.setAlignmentX(JLabel.CENTER_ALIGNMENT);
        timeLabel.setAlignmentY(JLabel.CENTER_ALIGNMENT);
        resultArea = new JTextArea();
        resultArea.setEditable(true);
        resultArea.setLineWrap(false);
        resultArea.setColumns(10);



        buttonPanel.add(startButton);
        buttonPanel.add(stopButton);
        buttonPanel.add(resetButton);
        buttonPanel.add(countButton);
        buttonCardPanel.add(buttonPanel);
        timePanel.add(timeLabel);
        resultPanel.add(new JScrollPane(resultArea));
        westPanel.add(buttonCardPanel,BorderLayout.CENTER);
        mainPanel.add(timePanel,BorderLayout.NORTH);

        mainPanel.add(westPanel,BorderLayout.CENTER);
        mainPanel.add(resultPanel,BorderLayout.WEST);
        contentPane.add(mainPanel);

        myTimer = new Timer(10,this);
        startButton.addActionListener(this);
        stopButton.addActionListener(this);
        countButton.addActionListener(this);
        resetButton.addActionListener(this);

        this.minute = 0;
        this.second = 0;
        this.donknow = 0;
        this.numberFinish=0;

        setSize(250,300);
        setResizable(false);   //禁止改变窗口大小
        setLocationRelativeTo(null); // 在屏幕中心弹出窗口
        setVisible(true);   

    }



    public void actionPerformed(ActionEvent e) 
    {
        if(e.getSource()==startButton){

            myTimer.start();
        }
        else if(e.getSource()==stopButton){
            myTimer.stop();
        }
        else if(e.getSource()==countButton){

            this.numberFinish++;
            DecimalFormat myFormat = new DecimalFormat("00");
            this.resultArea.append(" 第"+this.numberFinish+":   "+myFormat.format(this.minute)+":"+
                    myFormat.format(this.second)+":"+myFormat.format(this.donknow)+"\r\n");
        }
        else if(e.getSource()==resetButton){

            myTimer.stop();
            this.minute = 0;
            this.second = 0;
            this.donknow = 0;
            this.numberFinish=0;
            timeLabel.setText("00:00:00");

            //myTimer.start();
            //resultArea.setText("");
        }
        else if(e.getSource()==myTimer)
        {

            this.donknow++;
            this.second += this.donknow/100;
            this.minute += this.second/60;

            this.donknow = this.donknow%100;
            this.second = this.second%60;
            this.minute =this.minute%60;

            DecimalFormat myFormat = new DecimalFormat("00");
            this.timeLabel.setText(myFormat.format(this.minute)+":"+
                    myFormat.format(this.second)+":"+myFormat.format(this.donknow));

        }

    }
    public static void main(String args[])
    {
        @SuppressWarnings("unused")
        StopwatchFrame myFrame = new StopwatchFrame("秒表");
    }

}

3个回答

试了一下,JLabel正常显示秒表时间,各个按钮功能都有反应。
没明白Console没有运行结果是什么意义。

u012078395
漫步青青流年 好的 谢谢
5 年多之前 回复
danielinbiti
danielinbiti 回复漫步青青流年: 没有环境,没法帮你,找找是不是myeclipse自带了一些包的原因。或者单步跟一下,看哪行报的错。
5 年多之前 回复
u012078395
漫步青青流年 您知道这个怎么解决
5 年多之前 回复
u012078395
漫步青青流年 可能就是这个原因,在myeclipse上运行不出来,但是在eclipse可以,我找不到解决的方法了
5 年多之前 回复
danielinbiti
danielinbiti 回复漫步青青流年: eclipse
5 年多之前 回复
u012078395
漫步青青流年 一样的,请问您用的是myelipse吗
5 年多之前 回复
danielinbiti
danielinbiti 回复漫步青青流年: 如果你贴上来的代码和你的本地代码是一致的话,那应该是没问题的。你报的错一般是由控件没有初始化添加到界面中了。
5 年多之前 回复
u012078395
漫步青青流年 回复danielinbiti:我的运行结果不对,是我的程序有问题吗
5 年多之前 回复
u012078395
漫步青青流年 at java.awt.Container.addImpl(Container.java:1074) at java.awt.Container.add(Container.java:365) at StopwatchFrame.<init>(StopwatchFrame.java:64) at StopwatchFrame.main(StopwatchFrame.java:143)
5 年多之前 回复
danielinbiti
danielinbiti 回复漫步青青流年: 这是swing界面显示,和Console有什么关系呢。
5 年多之前 回复
u012078395
漫步青青流年 我用的myelipse软件运行,出现这样的提示
5 年多之前 回复

请哪位大师指点一下,感激不尽

你个Swing程序,main方法和其他被调用中又没有写System.out.println语句又不会打印输出,控制台当然看不懂啊任何结果了。
图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐