需要添加“public static void main(String [] args)”,

时间:2016-02-07 11:21:38

标签: java error-handling jbutton

我正在尝试在Eclipse中创建一个代码,在单击时更改MyButton上的颜色和文本。

编辑:得到了一些帮助和问题错误得到了解决。我现在知道代码需要“public static void main(String [] args)”应放在哪里?

在我尝试运行此代码后,我收到错误“无法启动选择,并且最近没有启动”。 但是,我用谷歌搜索它,发现错误可能是eclipse中的常见问题。我是,虽然对java很新,但假设我的代码有问题而不是eclipse讨厌我会更合乎逻辑。

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

    public class Makke extends JFrame implements ActionListener{


        private JButton MyButton;

        public Makke(){
            setLayout(null);
            setSize(300, 250);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            MyButton = new JButton("Tryck För Blå!");
            MyButton.setBackground(Color.YELLOW);
            MyButton.setBounds(100, 190, 60, 30);
            MyButton.addActionListener(this);
            add (MyButton);
        }

        public void actionPerformed(ActionEvent e) {
            if (e.getSource() == MyButton) {
                MyButton = new JButton("Tryck För Gul!");
                MyButton.setBackground(Color.BLUE);

            }

        }
        }

翻译: 代码中有一些瑞典语“Tryckförbå”=“Click to get blue”,“Tryckförgul”=“Click to get yellow”^^

2 个答案:

答案 0 :(得分:0)

每次点击它都会创建一个新按钮,但没有向该新对象添加clicklistener ... 我的推荐是这样做(或者如果你转向javaFX可能会更好)

JButton myButton = new JButton("Text Button");
myButton.addActionListener(new ActionListener()
{
  public void actionPerformed(ActionEvent e)
  {
      myButton.setText("Tryck För Gul!");
      myButton.setBackground(Color.BLUE);
  }
}

答案 1 :(得分:0)

1.您应该将setVisible( boolean b)设为true

根据参数b的值显示或隐藏此窗口。

setVisible(true);

添加此行应位于Makke类的构造函数中。

Read setVisible(boolean) doc

2.您的actionPerformed(.)方法

if (e.getSource() == MyButton) {
   //MyButton = new JButton("Tryck För Gul!"); remove this line
  //otherwise every time new button object will be created.
    MyButton.setText("Tryck För Gul!");//to change the button text
    MyButton.setBackground(Color.BLUE);
}

3.运行应用程序的主要方法。创建一个包含main( - )的类来运行你的应用程序,在Makke类的创建对象中。

public class Main {
public static void main(String []args)throws Exception {

        new Makke();//now your window will be appeared.
}
}

Read - Why main(-) method needed