Java网格包布局的swing辅助?
我试着将它设置为“输入你的名字”JLabel显示在JTextField左侧的右边,遗憾的是它显示在中间。我说的是第一个JLabel和第一个JTextArea,请忽略其余代码
import java.awt.*;
import javax.swing.*;
public class practice extends JFrame {
public static void main(String[] args){
new practice();
}
public practice(){
JPanel jp = new JPanel();
jp.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
jp.add(new JLabel(""),gbc);
gbc.gridx=0;
gbc.gridy=1;
jp.add(new JLabel("Enter your name\n"),gbc);
gbc.gridx=0;
gbc.gridy=0;
jp.add(new JLabel(" "),gbc);
gbc.gridx=0;
gbc.gridy=0;
jp.add(new JLabel(" "),gbc);
gbc.insets = new Insets(30,0,0,0);
gbc.gridx=0;
gbc.gridy=1;
jp.add(new JTextArea(3,30),gbc);
gbc.insets = new Insets(10,0,0,0);
gbc.gridx=0;
gbc.gridy=2;
jp.add(new JTextArea(3,10),gbc);
gbc.insets = new Insets(10,0,0,0);
gbc.gridx=0;
gbc.gridy=3;
jp.add(new JTextArea(3,10),gbc);
gbc.gridx=0;
gbc.gridy=0;
jp.add(new JRadioButton(""),gbc);
gbc.gridx=0;
gbc.gridy=0;
jp.add(new JRadioButton (""),gbc);
gbc.gridx=0;
gbc.gridy=0;
jp.add(new JRadioButton(""),gbc);
this.add(jp);
setTitle("Card");
setSize(700,500);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
}
# 1 楼答案
如果你想把它放在另一个旁边,你应该尝试这样做:
还可以阅读关于锚的内容,因为我没有看到你使用它们,你可以使用:
用于显示从直线开始而非从中心开始的对象
最后,我建议您创建一种向窗口添加对象的方法,以避免大量代码。 我举了一个很好的DEITEL的例子:
所以现在你只需要这样做:
请确保为widt和height指定一个值,因为如果没有,构造函数现在将不知道在哪里添加对象。 还要确保在构造函数所在的同一个类中声明方法
如果我有一些语法错误,对不起,但我很自豪有一个Nopal在我的前面。贾贾贾
我希望这个答案能对你有所帮助