Java GUI设置颜色

时间:2014-10-09 19:14:23

标签: java user-interface radio-button

我正在尝试将颜色的颜色设置为红色。当我运行它时,背景保持灰色。如果我使用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);
}
});

2 个答案:

答案 0 :(得分:2)

调用setBackground会更改RootPane上不可见的背景颜色。由于ContentPane是您可以执行的框架的可见子容器

getContentPane().setBackground(Color.RED);

答案 1 :(得分:1)

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

getContentPane().setBackground(Color.RED);