我正在尝试在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”^^
答案 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
类的构造函数中。
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.
}
}