gpt4 book ai didi

java - 尝试使用 java 创建 GUI,但无法按照我想要的方式实现它们

转载 作者:行者123 更新时间:2023-12-01 13:03:04 27 4
gpt4 key购买 nike

import javax.swing.*;
import java.awt.*;
public class SQlUI {
public static void main(String[] args){
SQlUI user=new SQlUI();
user.go();
}
public void go(){
//Creating a Frame
JFrame frame=new JFrame();
//Creating three Panels
JPanel panel0=new JPanel();
JPanel panel1=new JPanel();
JPanel panel2=new JPanel();

//Creating three Buttons
JButton button0=new JButton("INSERT");
JButton button1=new JButton("UPDATE");
JButton button2=new JButton("DELETE");

//Adding panel0 to the frame which contains three butoon objects
frame.getContentPane().add(BorderLayout.SOUTH,panel0);
panel0.add(button0);
panel0.add(button1);
panel0.add(button2);

//Creating four textbox
JTextField textbox0 = new JTextField(120);
JTextField textbox1 = new JTextField(120);
JTextField textbox2 = new JTextField(120);
JTextField textbox3 = new JTextField(120);

//Adding panel1 to the frame which contains four textbox objects
frame.getContentPane().add(BorderLayout.EAST,panel1);
//Using BoxLayout managaer for panel1 objects
panel1.setLayout(new BoxLayout(panel1, BoxLayout.Y_AXIS));
panel1.add(textbox0);
panel1.add(textbox1);
panel1.add(textbox2);
panel1.add(textbox3);

//Adding panel2 to the frame which contains four label objects
frame.getContentPane().add(BorderLayout.WEST,panel2);
//Using BoxLayout managaer for panel1 objects
panel2.setLayout(new BoxLayout(panel2, BoxLayout.Y_AXIS));

//Creating four labels
JLabel label0=new JLabel("Name");
label0.setSize(50,50);
label0.setVisible(true);
JLabel label1=new JLabel("ID");
label1.setSize(50,50);
label1.setVisible(true);
JLabel label2=new JLabel("AGE");
label2.setSize(50,50);
label2.setVisible(true);
JLabel label3=new JLabel("ADDRESS");
label3.setSize(50,50);
label3.setVisible(true);
//Adding labels to panel2
panel2.add(label0);
panel2.add(label1);
panel2.add(label2);
panel2.add(label3);

//Setting frame size and visiblity
frame.setSize(500,500);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

有关 GUI 的详细信息 - 我正在尝试创建一个 GUI,它有四个文本框,用户可以在其中输入详细信息,GUI 上有三个可用按钮,用户可以通过它们发送数据或存储数据。 GUI 还包含标签,告诉用户哪个文本框适用于哪种类型的数据。 现在对象的排列并没有按照我想要的方式进行。所有的标签都集中在一处,而且盒子的尺寸很大。试图在stalkoverflow上找到解决方案,但一无所获。

我想要这样的东西----名称-textbox0ID-文本框1年龄-文本框2地址-文本框3

插入更新删除

但是得到类似---- 文本框0

                     textbox1

姓名ID年龄地址文本框2

                     textbox3

Insert Update Delete

最佳答案

这不是您能做的最好看的事情,但它很简单,并且对您来说是一个良好的开始。

public class SQlUI {

public static void main(String[] args) {

SQlUI user = new SQlUI();
user.go();
}

public void go() {

JFrame frame = new JFrame();

JPanel buttonsPanel = new JPanel();
JButton insert = new JButton("INSERT");
JButton update = new JButton("UPDATE");
JButton delete = new JButton("DELETE");
buttonsPanel.add(insert);
buttonsPanel.add(update);
buttonsPanel.add(delete);
frame.getContentPane().add(buttonsPanel, BorderLayout.SOUTH);

JPanel centerPanel = new JPanel();
centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.Y_AXIS));

JPanel namePanel = new JPanel();
JLabel nameLabel = new JLabel("Name");
JTextField nameField = new JTextField(120);
namePanel.add(nameLabel);
namePanel.add(nameField);

JPanel idPanel = new JPanel();
JLabel idLabel = new JLabel("ID");
JTextField idField = new JTextField(120);
idPanel.add(idLabel);
idPanel.add(idField);

centerPanel.add(namePanel);
centerPanel.add(idPanel);
frame.getContentPane().add(centerPanel, BorderLayout.CENTER);

frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
  • 请注意,我调用 frame.getContentPane().add(buttonsPanel, BorderLayout.SOUTH);将面板作为第一个参数,将位置作为第二个参数,则相反。
  • 不确定为什么需要长度为 120 的文本字段。
  • 调用 frame.pack()而不是自己设置尺寸。
  • 看看缩进对代码有何影响。
  • 您可以自行完成其余面板。

关于java - 尝试使用 java 创建 GUI,但无法按照我想要的方式实现它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23408915/

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