我试图设计包含标签,文本字段,单选按钮和按钮的java GUI框架。
我想将每个组件放在特定位置尝试setBounds(),但它没有工作..
我也尝试使用getContentPane()。setBackground(Color.white)和setBackground(Color.white)来改变帧的背景颜色,但也没有用。
怎么做?
这是我的代码:
import javax.swing.*;
import java.awt.*;
import java.applet.*;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class test extends JFrame{
public static void main(String[] args) {
JFrame guiFrame = new JFrame();
guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
guiFrame.setTitle("WHO IS THE WINNER");
guiFrame.setSize(700,500);
guiFrame.setLocationRelativeTo(null);
final JPanel first = new JPanel();
JLabel un = new JLabel("UserName:");
JTextField textField = new JTextField(20);
JLabel sn = new JLabel("Server Name:");
JTextField textField2 = new JTextField(20);
un.setLabelFor(textField);
sn.setLabelFor(textField2);
first.add(un);
first.add(textField);
first.add(sn);
first.add(textField2);
final JPanel second = new JPanel();
JLabel level = new JLabel("Level:");
JLabel score = new JLabel("Score:");
JLabel question = new JLabel("Question:");
CheckboxGroup radioGroup = new CheckboxGroup();
Checkbox radio1 = new Checkbox("True", radioGroup,false);
Checkbox radio2 = new Checkbox("False", radioGroup,true);
second.add(score);
second.add(level);
second.add(question);
second.add(radio1);
second.add(radio2);
JButton next = new JButton( "Next");
next.addActionListener(
new ActionListener() {
@Override public void actionPerformed(ActionEvent event) {
first.setVisible(false);
} });
guiFrame.add(first, BorderLayout.NORTH);
guiFrame.add(second, BorderLayout.CENTER);
guiFrame.add(next,BorderLayout.SOUTH);
guiFrame.setVisible(true);
}
}
对于定位,例如我想要在它们下面的第一个标签和文本字段,而不是在它们旁边的另一个标签和文本字段..对于其他标签和单选按钮我也不希望它们彼此相邻我想要给他们一个特定的位置......
有人可以帮忙吗?
谢谢:)
答案 0 :(得分:0)
这个答案仅适用于Eclipse IDE。
放置所有小部件的简单方法是从位于窗口左下角的设计标签中进行操作。只需从Source透视图更改为Design透视图。它将打开一个简单的面板,包含您需要的一切。只需拖动不同的小部件并将它们放在自己的位置即可。
要更改框架的背景,请从“设计”选项卡中的框架属性执行此操作,或将以下代码添加到面板的构造函数中:
contentPane = new JPanel();
contentPane.setBackground(Color.WHITE);