Tag: gridbaglayout

java GridBagLayout锚点

学习GridBagLayout,这里的问题是,名称标签和combox没有显示在面板的顶部,但我已将其锚点设置为NORTH。 为什么? import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.WindowConstants; public class Test2 { public Test2() { JFrame frame = new JFrame(); frame.setTitle(“test”); frame.getContentPane().setLayout(new GridLayout(1,2)); frame.setSize(800, 600); JPanel panel1 = new JPanel(); panel1.setLayout(new GridBagLayout()); JLabel label = new JLabel(“name”); GridBagConstraints gridBagConstraints = new GridBagConstraints(); gridBagConstraints.anchor = GridBagConstraints.NORTH; […]

Java GridBagLayout中的Weightx和Weighty

理解这两个属性我有些困难。 我该如何给予组件重量? 这些数字是如何计算的? 我试图在网上阅读几篇文章,但我不明白。 谢谢。

我怎样才能在Java中实现这种可扩展的布局? 灵活的BoxLayout等

我希望能够有三个JPanels p1 p2和p3,并让它们像这样布局: 我一直在玩FlowLayout,BoxLayout等,但我不确定我是否朝着正确的方向前进。 我是Java的新手,所以如果我很诚实,我不知道会发生什么。 我喜欢BoxLayout如何工作,调整面板大小,但我希望能够给它一些宽度属性。 我没有使用视觉设计师,这是我目前的窗口代码: private void initialize() { Dimension dimensions = Toolkit.getDefaultToolkit().getScreenSize(); frame = new JFrame(); frame.setLayout(new GridLayout(1, 3)); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(dimensions.width / 2 – WINDOW_WIDTH / 2, dimensions.height / 2 – WINDOW_HEIGHT / 2, WINDOW_WIDTH, WINDOW_HEIGHT); JPanel p1 = new JPanel(new BorderLayout()); p1.setBackground(Color.red); JPanel p2 = new JPanel(new BorderLayout()); p2.setBackground(Color.black); JPanel p3 […]

如何让GridBagLayout尊重按钮或面板的最小尺寸?

在下面的GridBagLayout代码中,我希望在调整JFrame的大小以使其更小时,可以遵守指定的JButton btn2的最小大小。 但是当我使JFrame变小时,btn2会小于其最小尺寸然后消失。 有人能指出我正在做错的方向吗? 也许我必须设置包含按钮的JPanel的最小大小? 任何帮助表示赞赏,谢谢! JFrame frame = new JFrame(); frame.setSize(400,300); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); panel.setMinimumSize(new Dimension(400,300)); panel.setBackground(Color.RED); panel.setLayout(new GridBagLayout()); GridBagConstraints gbc = null; JButton btn1 = new JButton(“btn1”); btn1.setPreferredSize(new Dimension(150,50)); btn1.setMinimumSize(new Dimension(150,50)); gbc = new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0,0,0,0), 0, 0); panel.add(btn1, gbc); JButton […]

GridBagLayout不起作用

this.rootComponent.setLayout(new GridBagLayout()); GridBagConstraints gbc=new GridBagConstraints(); //gbc.gridwidth=2; gbc.gridx=0; gbc.gridy=0; gbc.gridwidth=8; gbc.anchor=GridBagConstraints.FIRST_LINE_START; this.rootComponent.add(new JLabel(“Test label 1”),gbc); gbc.gridx=8; gbc.gridy=12; gbc.gridwidth=GridBagConstraints.REMAINDER; gbc.anchor=GridBagConstraints.FIRST_LINE_START; this.rootComponent.add(new JLabel(“Test label”),gbc); 想要像这样格式化。 灰色部分显示jpanel部分。 最初我想正确布局前2个jpanel。 这是行不通的。 怎么解决?

如何实现documentlistener

我创建了一些文本字段,我想从中使用用户输入。 我已经读过我应该使用documentlistener,但是我认为在正确的位置实现它有一些困难。 在代码中我试图将其实现到文本字段tf1。 输入im应该被解析为double,所以我可以对它进行一些数学计算。 这是我的代码,我试图实现它。 import java.awt.ComponentOrientation; import java.awt.Container; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; public class Display { final static boolean shouldFill = true; final static boolean shouldWeightX = true; final static […]

GridBagLayout无法正确布局

我是GridBagLayout的新手,但我尝试使用我能找到的标准约定,即在一张网格纸上绘制我的想法,然后尝试将网格值转换为gridbag … 我的目标是制作如下所示的布局: 它目前看起来像这样: 任何想法为什么? 如果你想到一个左上角为0,0的网格,我正在寻找的确切尺寸 目标图片中面板中的红色:从第0列开始,跨越10列,高度为1行 对于黑色面板:从第0列开始,第1行,跨越10列,高度为20行 对于蓝色面板:从第0列开始,第21行,跨越10列,高度为1 对于绿色列:从第10列开始,第0行,跨度16列,高度为7 对于紫色列:从第10列开始,第7行,跨度16列,高度为16 这是我的源代码: GBC是一个扩展GridBagConstraints的辅助类,使用的构造函数是 GBC(int startingX,int startingY,int width,int height) /* * To change this template, choose Tools | Templates * and open the template in the editor. */ import java.awt.Color; import java.awt.EventQueue; import java.awt.GridBagLayout; import java.awt.Rectangle; import javax.swing.JApplet; import javax.swing.JLabel; import javax.swing.JPanel; public class Demo extends […]

如何在Java中锁定gridLayout的宽高比?

在Java Swing中是否有一种简单的方法来锁定GridLayout组件的宽高比? 或者应该在包含该布局的JPanel上完成?

GridBagLayout面板对齐

我对GridBag布局管理器有一点问题。 我试图显示9个这样的面板: 为此,我将网格分开如下: 对于面板1到7没有问题,它们就像我想要的那样出现。 但问题始于面板S8和S9 。 正如你所看到的, S8和S9占据了一半的帧,但是我无法让它显示出来。 S8在S4开始时结束, S9在S4结束时开始,我无法处理半空间。 我想通过的方法是将S8和S9面板放在另一个采用所有框架宽度的面板上 – 但是必须有一个正确的方法来显示这两个面板而不将它们放在另一个面板中! 这是代码: workzone.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.anchor = GridBagConstraints.NORTHWEST; c.fill = GridBagConstraints.BOTH; c.weightx = 0.5; c.weighty = 0.5; c.insets = new Insets(0,0,0,0); //S1 c.gridx = 0; c.gridy = 0; c.gridwidth = 2; c.gridheight = 2; workzone.add(S1, c); //S2 c.gridx = […]

如何在GridBagLayout单元格中左右对齐?

我看到GridBagLayout将它的子GridBagLayout定位在单元格中的中心对齐位置。 如何左右对齐? UPDATE 构造代码(我知道我可以重用c ) // button panel JPanel button_panel = new JPanel(); button_panel.add(ok_button); button_panel.add(cancel_button); // placing controls to dialog GridBagConstraints c; GridBagLayout layout = new GridBagLayout(); setLayout(layout); c = new GridBagConstraints(); c.gridx = 0; c.gridy = 0; add(inputSource_label, c); c = new GridBagConstraints(); c.gridx = 1; c.gridy = 0; add(inputSource_combo, c); c = new […]