Java guijpanel&;框架布局
我想问一些关于JavaGUI的问题,特别是关于Java guijpanel&;框架布局,java,swing,user-interface,jpanel,layout-manager,Java,Swing,User Interface,Jpanel,Layout Manager,我想问一些关于JavaGUI的问题,特别是关于JPanel语法的问题。我真的很困惑如何准确地配置面板,尝试使用BorderLayout和GridLayout,但它仍然不符合我的要求 我想制作如下表格: 当前结果: 从图中,我需要配置这2个点 输入面板和按钮面板之间的填充/边距 tablePanel和inputPanel之间的填充/边距 代码 导入java.awt.BorderLayout; 导入java.awt.Color; 导入java.awt.GridLayout; 导入java.uti
JPanel
语法的问题。我真的很困惑如何准确地配置面板,尝试使用BorderLayout
和GridLayout
,但它仍然不符合我的要求
我想制作如下表格:
当前结果:
从图中,我需要配置这2个点导入java.awt.BorderLayout;
导入java.awt.Color;
导入java.awt.GridLayout;
导入java.util.Vector;
导入javax.swing.JButton;
导入javax.swing.JComboBox;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JPanel;
导入javax.swing.JScrollPane;
导入javax.swing.JTable;
导入javax.swing.JTextField;
导入javax.swing.border.BevelBorder;
导入javax.swing.border.EmptyBorder;
导入javax.swing.border.LineBorder;
导入javax.swing.table.DefaultTableModel;
公共类manageForm扩展了JFrame{
//向量头=新向量();
//Vectordata=新向量();
DefaultTableModel DefaultTableModel;
JTable表;
JScrollPane滚动窗格;
JLabel titleLabel=新的JLabel(“管理手机”);
JTable hpTable=新的JTable();
JLabel idLabel=新的JLabel(“ID”);
JLabel namelab=新JLabel(“名称”);
JLabel pricelab=新JLabel(“价格”);
JLabel weightLabel=新的JLabel(“重量”);
JLabel cableLabel=新的JLabel(“电缆长度”);
JLabel typeLabel=新的JLabel(“类型”);
JTextField idtxt=新的JTextField();
JTextField name txt=新的JTextField();
JTextField pricetxt=新的JTextField();
JTextField weighttxt=新的JTextField();
JTextField cabletxt=新的JTextField();
JComboBox typeBox=新的JComboBox();
JButton insertBtn=新JButton(“插入”);
JButton updateBtn=新JButton(“更新”);
JButton deleteBtn=新JButton(“删除”);
JButton confirmtn=新JButton(“确认”);
JButton cancelBtn=新JButton(“取消”);
字符串头[]={“ID”、“名称”、“类型”、“价格”、“重量”、“电缆长度”};
字符串数据[][]={
{“2”、“Bose Quit”、“入耳”、“价格”、“重量”、“电缆长度”},
{“2”、“Bose Quit”、“入耳”、“价格”、“重量”、“电缆长度”},
{“2”、“Bose安静”、“入耳”、“价格”、“重量”、“电缆长度”}
};
公共表格(){
JPanel headerPanel=新的JPanel();
JPanel tablePanel=新的JPanel();
tablePanel.setboorder(新的清空顺序(0,0,0));
JPanel inputPanel=新的JPanel(新的网格布局(6,2));
输入面板.设置顺序(新的清空顺序(20,10,20,10));
//inputPanel.setOrder(新行边框(颜色.黑色));
JPanel buttonPanel=新JPanel(新网格布局(1,5));
按钮面板订单(新的清空订单(100,20100,20));
JPanel footerPanel=新的JPanel(新的GridLayout(2,1,0,0));
标题面板添加(标题标签);
inputPanel.add(idLabel);
inputPanel.add(idtxt);
inputPanel.add(名称标签);
inputPanel.add(nametxt);
inputPanel.add(价格标签);
inputPanel.add(pricetxt);
inputPanel.add(权重标签);
inputPanel.add(weighttxt);
inputPanel.add(电缆标签);
inputPanel.add(cabletxt);
inputPanel.add(类型标签);
inputPanel.add(打印框);
按钮面板添加(确认);
按钮面板添加(取消BTN);
按钮面板添加(插入BTN);
按钮面板添加(updateBtn);
按钮面板添加(删除BTN);
footerPanel.add(inputPanel);
footerPanel.add(按钮面板);
/*
JPanel panel0=新的JPanel();
JPanel panel1=新的JPanel();
JPanel panel2=新的JPanel();
JPanel panel3=新的JPanel();
JPanel panel4=新的JPanel();
JPanel panel5=新的JPanel();
JPanel panel6=新的JPanel();
JPanel panel7=新的JPanel();
JPanel panel8=新的JPanel();
面板1.设置布局(新网格布局(1,6));
面板2.设置布局(新网格布局(1,2));
第2组:添加(idLabel);
panel2.add(idtxt);
面板3.设置布局(新网格布局(1,2));
面板3.添加(名称标签);
panel3.add(nametxt);
面板4.设置布局(新网格布局(1,2));
面板4.添加(价格标签);
面板4.添加(价格文本);
面板5.设置布局(新网格布局(1,2));
面板5.添加(重量标签);
面板5.添加(权重文本);
面板6.设置布局(新网格布局(1,2));
面板6.添加(电缆标签);
面板6.添加(cabletxt);
面板7.设置布局(新网格布局(1,2));
面板7.添加(打印标签);
面板7.添加(打印框);
面板8.设置布局(新网格布局(1,5));
主面板。添加(面板0);
主面板。添加(面板1);
主面板。添加(面板2);
主面板。添加(面板3);
主面板。添加(面板4);
主面板。添加(面板5);
主面板。添加(面板6);
主面板。添加(面板7);
主面板。添加(面板8);
*/
/*
标题。添加(“ID”);
标题。添加(“名称”);
标题。添加(“类型”);
标题。添加(“价格”);
标题。添加(“重量”);
标题。添加(“电缆长度”);
*/
defaultTableModel=新的defaultTableModel(数据,标题);
hpTable=新的JTable(defaultTableModel);
scrollPane=新的JScrollPane(hpTable);
//tablePanel.add(滚动窗格);
setLayout(新边界布局(0,5));
setTitle(“管理表格”);
设置大小(800600);
setDefaultCloseOperation(关闭时退出);
setLocationRelativeTo(空);
setVisible(真);
添加(headerPanel,BorderLayout.NORTH);
添加(滚动窗格,BorderLayout.CENTER);
添加(页脚面板,BorderLayout.SOUTH);
包装();
}
公共静态void main(字符串[]args){
新的manageForm();
}
}
如何准确管理面板布局以满足我们的要求
我试过了
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.BevelBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import javax.swing.table.DefaultTableModel;
public class manageForm extends JFrame {
//Vector<String> header=new Vector<String>();
//Vector<Vector<String>>data=new Vector<Vector<String>>();
DefaultTableModel defaultTableModel;
JTable table;
JScrollPane scrollPane;
JLabel titleLabel=new JLabel("Manage Handphone");
JTable hpTable = new JTable();
JLabel idLabel = new JLabel("ID");
JLabel nameLabel = new JLabel("Name");
JLabel priceLabel = new JLabel("Price");
JLabel weightLabel = new JLabel("Weight");
JLabel cableLabel = new JLabel("Cable Length");
JLabel typeLabel = new JLabel("Type");
JTextField idtxt = new JTextField();
JTextField nametxt = new JTextField();
JTextField pricetxt = new JTextField();
JTextField weighttxt = new JTextField();
JTextField cabletxt = new JTextField();
JComboBox typeBox = new JComboBox();
JButton insertBtn = new JButton("INSERT");
JButton updateBtn = new JButton("UPDATE");
JButton deleteBtn = new JButton("DELETE");
JButton confirmBtn = new JButton("CONFIRM");
JButton cancelBtn = new JButton("CANCEL");
String header[] = {"ID","Name","Type","Price","Weight","Cable Length"};
String data[][] = {
{"2","Bose Quite","In-Ear","Price","Weight","Cable Length"},
{"2","Bose Quite","In-Ear","Price","Weight","Cable Length"},
{"2","Bose Quite","In-Ear","Price","Weight","Cable Length"}
};
public manageForm() {
JPanel headerPanel = new JPanel();
JPanel tablePanel = new JPanel();
tablePanel.setBorder(new EmptyBorder(0,0,0,0));
JPanel inputPanel = new JPanel(new GridLayout(6,2));
inputPanel.setBorder(new EmptyBorder(20,10,20,10));
//inputPanel.setBorder(new LineBorder(Color.black));
JPanel buttonPanel = new JPanel(new GridLayout(1,5));
buttonPanel.setBorder(new EmptyBorder(100,20,100,20));
JPanel footerPanel = new JPanel(new GridLayout (2,1,0,0));
headerPanel.add(titleLabel);
inputPanel.add(idLabel);
inputPanel.add(idtxt);
inputPanel.add(nameLabel);
inputPanel.add(nametxt);
inputPanel.add(priceLabel);
inputPanel.add(pricetxt);
inputPanel.add(weightLabel);
inputPanel.add(weighttxt);
inputPanel.add(cableLabel);
inputPanel.add(cabletxt);
inputPanel.add(typeLabel);
inputPanel.add(typeBox);
buttonPanel.add(confirmBtn);
buttonPanel.add(cancelBtn);
buttonPanel.add(insertBtn);
buttonPanel.add(updateBtn);
buttonPanel.add(deleteBtn);
footerPanel.add(inputPanel);
footerPanel.add(buttonPanel);
/*
JPanel panel0=new JPanel();
JPanel panel1=new JPanel();
JPanel panel2=new JPanel();
JPanel panel3=new JPanel();
JPanel panel4=new JPanel();
JPanel panel5=new JPanel();
JPanel panel6 = new JPanel();
JPanel panel7 = new JPanel();
JPanel panel8 = new JPanel();
panel1.setLayout(new GridLayout(1, 6));
panel2.setLayout(new GridLayout(1, 2));
panel2.add(idLabel);
panel2.add(idtxt);
panel3.setLayout(new GridLayout(1, 2));
panel3.add(nameLabel);
panel3.add(nametxt);
panel4.setLayout(new GridLayout(1, 2));
panel4.add(priceLabel);
panel4.add(pricetxt);
panel5.setLayout(new GridLayout(1, 2));
panel5.add(weightLabel);
panel5.add(weighttxt);
panel6.setLayout(new GridLayout(1, 2));
panel6.add(cableLabel);
panel6.add(cabletxt);
panel7.setLayout(new GridLayout(1, 2));
panel7.add(typeLabel);
panel7.add(typeBox);
panel8.setLayout(new GridLayout(1, 5));
mainPanel.add(panel0);
mainPanel.add(panel1);
mainPanel.add(panel2);
mainPanel.add(panel3);
mainPanel.add(panel4);
mainPanel.add(panel5);
mainPanel.add(panel6);
mainPanel.add(panel7);
mainPanel.add(panel8);
*/
/*
header.add("ID");
header.add("Name");
header.add("Type");
header.add("Price");
header.add("Weight");
header.add("Cable Length");
*/
defaultTableModel=new DefaultTableModel(data, header);
hpTable =new JTable(defaultTableModel);
scrollPane=new JScrollPane(hpTable);
// tablePanel.add(scrollPane);
setLayout(new BorderLayout(0,5));
setTitle("Manage Form");
setSize(800,600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
add(headerPanel,BorderLayout.NORTH);
add(scrollPane,BorderLayout.CENTER);
add(footerPanel,BorderLayout.SOUTH);
pack();
}
public static void main(String[] args) {
new manageForm();
}
}