编写一个显示带三个按钮的窗口的程序。每个按钮的名称都是“红色”,“绿色”和“蓝色”。在这个窗口中,还有一个标签。标签包含一个图标。此图标必须是CompositeIcon,其中开头为空。每次按下按钮,您都可以看到一个带有按钮颜色的正方形,例如“按下蓝色按钮 - >窗口上出现一个蓝色方块“。 到目前为止,我有这个。我有三个带有颜色名称的按钮。我每次按下其中一个按钮都不起作用。我需要做什么?
代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ActionTester{
public static void main(String[] args){
JFrame frame = new JFrame();
final JTextField textField = new JTextField();
JButton RedButton = new JButton("Red");
RedButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
SquareIcon red = new SquareIcon(20,Color.RED);
CompositeIcon ci = new CompositeIcon();
ci.addIcon(red);
}
});
JButton GreenButton = new JButton("Green");
GreenButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
SquareIcon green = new SquareIcon(20,Color.GREEN);
CompositeIcon ci = new CompositeIcon();
ci.addIcon(green);
}
});
JButton BlueButton = new JButton("Blue");
BlueButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
SquareIcon blue = new SquareIcon(20,Color.BLUE);
CompositeIcon ci = new CompositeIcon();
ci.addIcon(blue);
}
});
frame.setLayout(new FlowLayout());
frame.add(RedButton);
frame.add(GreenButton);
frame.add(BlueButton);
frame.add(textField);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
答案 0 :(得分:2)
您需要做的就是创建一个您在ActionListener
中更改的方形对象:
final JPanel sqr = new JPanel();
JButton RedButton = new JButton("Red");
RedButton.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
sqr.setBackground(Color.RED);
}
});
并且不要忘记将sqr
添加到框架
另外请注意,请避免使用
等导入import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
在我的项目中,它归结为
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
某些IDE可以自动对您进行排序,因此您不再需要为最常见的导入而烦恼
答案 1 :(得分:1)
按钮本身可以使用,但您永远不会将redirect_to
添加到您的框架中。因此没有显示任何内容