JPanel带有3个复选框,可在JFrame的中心设置背景色

蓝矮人

我正在设计一个带有三个标记为“红色”,“绿色”和“蓝色”的复选框的JPanel,它们在GUI中心的JPanel的背景色中添加了红色,绿色或蓝色成分。最初,JPanel的“蓝色” JCheckBox被打勾,因此,JPanel的颜色为蓝色。勾选了不同的复选框后,JPanel上将显示适当的颜色组合,该组合总共可以显示八种颜色组合。

它应该像下面的图片:

输出

该程序的代码为:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class ColorDemo extends JFrame implements ItemListener
{
    int r=0,g=0,b=0;
    JCheckBox red,green,blue;
    JPanel P = new JPanel();
    JPanel cpanel = new JPanel();
    Container pane = getContentPane();


    ColorDemo(String cd){
        super(cd);
        red = new JCheckBox("red");
        red.addItemListener(this);

        green = new JCheckBox("green");
        green.addItemListener(this);

        blue = new JCheckBox("blue");
        blue.setSelected(true);
        blue.addItemListener(this);        

        cpanel.add(red);
        cpanel.add(green);
        cpanel.add(blue);

        getContentPane().add(cpanel,"North");
        setSize(400,400);
        setVisible(true);        

        getContentPane().add(P);
        P.setAlignmentX(JComponent.CENTER_ALIGNMENT);
        setVisible(true);

    }

    public static void main(String[] args)
    {
        ColorDemo cd = new ColorDemo("Color Check Box");
        cd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    public void itemStateChanged(ItemEvent ie){

        if(ie.getItem() == red)
        if(red.isSelected()) r=255; else r=0;
            if(ie.getItem() == green)
        if(green.isSelected()) g=255; else g=0;
            if(ie.getItem() == blue)
        if(blue.isSelected()) b=255; else b=0;

        P.setBackground(new Color(r,g,b));            

    }

}

现在我遇到的问题是:

***它将颜色显示为背景,而不是居中显示。看图片:

我的代码输出

***同样根据要求,最初选中了蓝色复选框,但未在JFrame上显示颜色。

我有点困惑(因为我对编程非常陌生),任何建议将不胜感激。谢谢。

福赛思11

setVisible(true)将代码更改为以下代码之前

 panel = new JPanel();
    getContentPane().add(panel, BorderLayout.CENTER);
    panel.setLayout(new CardLayout(100, 100));
    panel.add(P, "name");
    P.setAlignmentX(JComponent.CENTER_ALIGNMENT);
    P.setBackground(new Color(0,0,255));

这样可以防止颜色出现在整个画面上。这也会使默认颜色为蓝色,而不是原始的灰色默认值。

我所做的就是创建一个JPanel,其中的面板内部有一个卡布局,水平和垂直间距为100。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在带有复选框的全行表上添加背景色

来自分类Dev

更改复选框背景色

来自分类Dev

如何通过在WPF中进行绑定来设置复选框内容的背景色

来自分类Dev

样式复选框,将选中的背景色设置为窗口内的70%

来自分类Dev

在C#中设置按复选框的背景色Windows Phone 8

来自分类Dev

如何更改复选框的背景色?

来自分类Dev

表单复选框的备用背景色

来自分类Dev

如何更改复选框背景色?

来自分类Dev

如何每行只有3个复选框,带有动态复选框号

来自分类Dev

如何使用CSS更改输入复选框的背景色?

来自分类Dev

将选中的复选框从勾号更改为纯背景色

来自分类Dev

选中复选框时更改WPF数据网格行的背景色

来自分类Dev

如何为包含多个JPanel,JButton和JLabel的JFrame设置背景色?

来自分类Dev

行中带有Bootstrap 3个选项卡的垂直对齐复选框

来自分类Dev

JPanel复选框

来自分类Dev

当前,当我单击复选框时,我们要使用CSS将图像用作复选框,我想隐藏图像并显示背景色

来自分类Dev

有一个带有复选框的jsTree,如何禁用所有复选框?

来自分类Dev

带有多行文本的标签内的中心复选框

来自分类Dev

带有Nimbus的JSpinner的背景色

来自分类Dev

带有复选框的BooleanToVisibilityConverter

来自分类Dev

带有复选框的过滤表

来自分类Dev

android,带有复选框的listview

来自分类Dev

显示带有复选框的组件

来自分类Dev

带有复选框的QFileSystemModel

来自分类Dev

带有复选框的If / Then语句(html)

来自分类Dev

带有复选框的按钮

来自分类Dev

删除带有复选框的对象

来自分类Dev

访问带有变量的复选框

来自分类Dev

未选中所有其他复选框时如何设置始终选中的1个复选框

Related 相关文章

热门标签

归档