gpt4 book ai didi

java - 在 JFrame 中放置 JPanel 并调整其大小

转载 作者:行者123 更新时间:2023-12-02 06:54:46 24 4
gpt4 key购买 nike

我想要一个带有 JPanelJFrame,如下所示。

Sample layout

左侧的 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();
}
}

最佳答案

您不应该手动控制大小。如果用户想要调整大小怎么办?你将不得不做无用的计算,而 java 会很乐意使用布局管理器为你做这些。

http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

关于java - 在 JFrame 中放置 JPanel 并调整其大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17510144/

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