我想要JFrame
一个JPanel
看起来像这样的。
左侧的 2 个面板分别为 60% 宽度和 50% 高度,然后右侧的面板分别为 40% 宽度和 100% 高度 我怎样才能做到这一点?
import javax.swing.*;
import java.awt.*;
public class INV{
private JFrame mainFrame;
private JPanel Outer_panel1;
private JPanel Outer_panel2;
private JPanel Panel1;
private JPanel Panel2;
private JPanel Panel3;
private JPanel Panel4;
private JButton b1;
private JButton b2;
private JButton b3;
private JComboBox List;
private JComboBox List2;
private JTextField Item_name;
private JTextField Dec_qty;
private JTextField Inc_qty;
private static String[] Items = {"wood","steel"};
private JTable Table;
private JScrollPane Scroll;
static double xsize;
static double ysize;
public INV(){
gui();
}
public void gui(){
mainFrame = new JFrame("sample");
GridBagConstraints Con = new GridBagConstraints();
//Left Panel
Dec_qty=new JTextField(3);
Inc_qty=new JTextField(3);
List = new JComboBox(Items);
List2 = new JComboBox(Items);
b1 = new JButton("OK");
b2 = new JButton("OK");
Outer_panel1 = new JPanel(new GridBagLayout());
Outer_panel1.setBackground(Color.yellow);
Panel1 = new JPanel();
Panel1.setBackground(Color.blue);
Panel2 = new JPanel();
Panel2.setBackground(Color.red);
Outer_panel1.add(b1);
Outer_panel1.add(b2);
Panel1.add(List);
Panel2.add(List2);
Panel1.add(Inc_qty);
Panel2.add(Dec_qty);
Panel1.add(b1);
Panel2.add(b2);
Con.gridx = 0;
Con.gridy = 0;
Con.ipady = 300;
Con.fill = GridBagConstraints.VERTICAL;
Outer_panel1.add(Panel1,Con);
Con.gridx = 0;
Con.gridy = 1;
Con.ipady = 0;
Con.weighty = 1.0;
Outer_panel1.add(Panel2,Con);
mainFrame.add(Outer_panel1, BorderLayout.LINE_START);
//right panel
Outer_panel2 = new JPanel(new GridBagLayout());
Outer_panel2.setBackground(Color.CYAN);
Panel3 = new JPanel();
Panel3.setBackground(Color.MAGENTA);
Panel4 = new JPanel();
Panel4.setBackground(Color.ORANGE);
//Panel3
Item_name =new JTextField(20);
b3 = new JButton("Search");
//Panel4 and Table
String[] columnNames = {"column1","column2"};
Object[][] data = {{"sample1","sample2"},
{"sample3","sample4"}};
Table = new JTable(data, columnNames);
Table.setPreferredScrollableViewportSize(new Dimension(200,200));
Table.setFillsViewportHeight(true);
Scroll = new JScrollPane(Table);
Panel3.add(Item_name);
Panel3.add(b3);
Panel4.add(Scroll);
Con.gridx = 0;
Con.gridy = 0;
Con.ipady = 0;
Con.weighty = 0;
Outer_panel2.add(Panel3, Con);
Con.gridx = 0;
Con.gridy = 1;
Con.ipady = 0;
Con.fill = GridBagConstraints.BOTH;
Con.weighty = 1.0;
Outer_panel2.add(Panel4, Con);
mainFrame.add(Outer_panel2, BorderLayout.EAST);
mainFrame.setVisible(true);
mainFrame.setSize(900, 500);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args){
new INV();
}
}