gpt4 book ai didi

java - 带有 3 个复选框的 JPanel,用于在 JFrame 的中心设置背景颜色

转载 作者:行者123 更新时间:2023-11-29 03:10:18 26 4
gpt4 key购买 nike

我正在设计一个带有三个标记为“红色”、“绿色”和“蓝色”的复选框的 JPanel,它们将红色、绿色或蓝色组件添加到 GUI 中心的 JPanel 背景颜色。最初,JPanel 勾选了“蓝色”JCheckBox,因此 JPanel 的颜色为蓝色。当勾选不同的复选框时,相应的颜色组合就会出现在 JPanel 上,它总共可以显示八种颜色组合。

应该如下图所示:

Output

程序的代码是:

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));

}

}

现在我遇到的问题是:

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

Output of my code

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

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

最佳答案

在您的 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。

关于java - 带有 3 个复选框的 JPanel,用于在 JFrame 的中心设置背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29749920/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com