java如何在一个窗口中制作两种颜色?
我想这样做:
代码如下:
import java.awt.Color;
import java.awt.event.*;
import javax.swing.*;
class QuizGUI {
public static void main(String args[]) {
JFrame frm = new JFrame("Simple Quiz");
frm.setLayout(null);
JLabel lbl1 = new JLabel("Which Animal can fly?");
JLabel lbl2 = new JLabel("You have selected: ");
JLabel lblOutput = new JLabel();
JRadioButton rCat = new JRadioButton("Cat");
JRadioButton rBird = new JRadioButton("Bird");
JRadioButton rFish = new JRadioButton("Fish");
ButtonGroup bg = new ButtonGroup();
bg.add(rCat);
bg.add(rBird);
bg.add(rFish);
lbl1.setBounds(0, 0, 200, 20);
rCat.setBounds(0, 20, 100, 20);
rBird.setBounds(0, 40, 100, 20);
rFish.setBounds(0, 60, 100, 20);
lbl2.setBounds(0, 80, 200, 20);
lblOutput.setBounds(0, 105, 200, 20);
frm.add(lbl1);
frm.add(rCat);
frm.add(rBird);
frm.add(rFish);
frm.add(lbl2);
frm.add(lblOutput);
rCat.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (rCat.isSelected()) {
lblOutput.setText("Cat can't fly, Try again.");
}
}
});
rBird.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (rBird.isSelected()) {
lblOutput.setText("Bird can fly, Excellent.");
}
}
});
rFish.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (rFish.isSelected()) {
lblOutput.setText("Cat can't fly, Try again.");
}
}
});
frm.setVisible(true);
frm.setSize(350, 200);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
问题是,我想要像窗口一样的图像的颜色,背景是白色,选择的背景是灰色
我试过了frame.setBackground
,但没用
我尝试了另一个例子的一些代码,颜色是白色的。我不知道为什么窗户都是这样的灰色:
# 1 楼答案
根据您在问题中发布的代码:
这不是个好主意。我建议总是使用layout manager
JFrame
是一个top-level container。它有一个内容窗格,默认情况下是JPanel
。内容窗格的默认布局管理器是BorderLayout
。您可以参考JFrame
的源代码来确认这一点在我看来
BorderLayout
适合您的GUI。一个JPanel
是北方部分,它显示了一个问题,即哪种动物会飞,单选按钮是中心组件,您选择的文本:是南面板每个
JPanel
可以有自己的背景色。我在Windows 10上使用JDK 13,默认背景色为灰色。因此,在下面的代码中,我设置了南北面板的背景色,并保留了中间面板的默认背景色# 2 楼答案
首先在QuizGUI类中创建一个名为
contentPane
的私有JPanel
。然后在main
方法中键入:然后,用
contentPane.add()
更改所有frm.add()
我希望这有帮助