2014-10-09 133 views
0

我试图将颜色设置为红色。当我运行这个时,背景保持灰色。如果我使用setBackground,那么会出现一个红色背景,但随后又变成了灰色。我怎样才能解决这个问题?Java GUI设置颜色

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

我们可以看到您绑定到单选按钮的动作侦听器吗? – 2014-10-09 19:20:34

+0

我将它添加到帖子中。尽管如此,这仍然充满了不同的错误我尝试了不同的东西来实现它的功能。我已经使用this.setForground,this.setBackground,JPanel.setForeground/Background,FinalProject.set ------你的想法 – 2014-10-09 19:25:34

回答

2

调用setBackground变化对RootPane这是不可见的背景颜色。由于ContentPane是您可以执行的框架的可见子容器

getContentPane().setBackground(Color.RED); 
+0

这是我的错误!非常感谢。回去为我工作。非常感激。 – 2014-10-09 19:34:21

1

设置contentPane的背景而不是框架。

getContentPane().setBackground(Color.RED);