Java 如何制作按钮,使其与颜色成正方形?

Java 如何制作按钮,使其与颜色成正方形?,java,swing,background,jbutton,actionlistener,Java,Swing,Background,Jbutton,Actionlistener,编写一个用三个按钮显示窗口的程序。每个按钮都有一个类似“红色”、“绿色”和“蓝色”的名称。在此窗口中,还有一个标签。标签包含一个图标。此图标必须是复合图标,开头为空。每次按下一个按钮,你都可以看到一个带有按钮颜色的正方形,例如“按下蓝色按钮->窗口上出现一个蓝色正方形”。 到目前为止,我有这个。我有三个带颜色名称的按钮。我每次按下其中一个按钮,它都不工作。我需要做什么 代码: 按钮本身可以工作,但您从不将合成图标添加到框架中。因此,不会显示任何内容按钮本身起作用,但您从未将合成图标添加到帧中。因

编写一个用三个按钮显示窗口的程序。每个按钮都有一个类似“红色”、“绿色”和“蓝色”的名称。在此窗口中,还有一个标签。标签包含一个图标。此图标必须是复合图标,开头为空。每次按下一个按钮,你都可以看到一个带有按钮颜色的正方形,例如“按下蓝色按钮->窗口上出现一个蓝色正方形”。 到目前为止,我有这个。我有三个带颜色名称的按钮。我每次按下其中一个按钮,它都不工作。我需要做什么

代码:


按钮本身可以工作,但您从不将
合成图标添加到框架中。因此,不会显示任何内容

按钮本身起作用,但您从未将
合成图标
添加到帧中。因此,不会显示任何内容

您只需创建一个方形对象,然后在
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可以自动对导入进行排序,这样您就不必再为最常见的导入而烦恼了

您只需创建一个方形对象,然后在
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可以自动对导入进行排序,这样您就不必再为最常见的导入而烦恼了

嘿,我不确定这是否是同一个练习,但看看这个:。这听起来很像你的任务。嘿,我不确定这是否是同一个练习,但看看这个:。听起来很像你的任务。谢谢你回答我的问题。如果我想制作多个红方块,例如,每次按下红色按钮,就会有更多的红方块出现在彼此旁边。我该怎么做?有些外观不支持按钮的背景色。要获得更可靠的方法,请使用
ColoredIcon
,如中所示。这将在PLAF和系统中起作用。(注意,答案会将图标添加到标签上,但按钮也会接受图标。)谢谢安德鲁·汤普森。谢谢你回答我的问题。如果我想制作多个红方块,例如,每次按下红色按钮,就会有更多的红方块出现在彼此旁边。我该怎么做?有些外观不支持按钮的背景色。要获得更可靠的方法,请使用
ColoredIcon
,如中所示。这将在PLAF和系统中起作用。(注意,答案会将图标添加到标签上,但按钮也会接受图标。)谢谢安德鲁·汤普森。