我正在尝试将颜色的颜色设置为红色。当我运行它时,背景保持灰色。如果我使用setBackground然后出现红色背景,然后再次变成灰色。我该如何解决这个问题?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.TitledBorder;
public class FinalProject extends JFrame {
private JRadioButton jrbRed = new JRadioButton("Red");
private JRadioButton jrbBlue = new JRadioButton("Blue");
public FinalProject(){
setLayout(new FlowLayout(FlowLayout.LEFT, 20, 30));
JPanel jpRadioButtons = new JPanel();
jpRadioButtons.setLayout(new GridLayout(2,1));
jpRadioButtons.add(jrbRed);
jpRadioButtons.add(jrbBlue);
add(jpRadioButtons, BorderLayout.AFTER_LAST_LINE);
ButtonGroup color = new ButtonGroup();
color.add(jrbRed);
jrbRed.setMnemonic(KeyEvent.VK_B);
jrbRed.setActionCommand("Red");
color.add(jrbBlue);
jrbBlue.setMnemonic(KeyEvent.VK_B);
jrbBlue.setActionCommand("Blue");
jrbRed.setSelected(true);
最后,我将使用一系列单选按钮,使显示颜色更改为所选内容。 免责声明!这是我上课的最后一个项目,我不是在寻找我的工作,因为从长远来看这会伤害我。 (对不起,如果我的语法不好,我只是有乳酸,我的视力非常模糊)
最重要的是感谢您的所有评论,一切都有助于学习,我非常感谢这个社区的帮助。
jrbRed.addActionListener(new ActionListener() {
@Override
public void actionPreformed(ActionEvent e){
JPanel.setForeground(Color.red);
}
});
答案 0 :(得分:2)
调用setBackground
会更改RootPane
上不可见的背景颜色。由于ContentPane
是您可以执行的框架的可见子容器
getContentPane().setBackground(Color.RED);
答案 1 :(得分:1)
设置contentPane的背景而不是框架。
getContentPane().setBackground(Color.RED);