Swing中的GridBagLayout格式

希瑟姆·穆罕默德(Hisham Mohammed)

http://i.imgur.com/oxcEAT5.png

当我添加第二行(按钮的)时,我的textArea消失了。

http://i.imgur.com/P9auZqi.png

这是GridBagLayout代码:

    public void gridlayout(){

    setLayout(new GridBagLayout());

    GridBagConstraints grid = new GridBagConstraints();

    grid.gridy = 0;
    grid.gridx = 0;
    add(refreshButton, grid);

    grid.gridx = 1;
    grid.gridwidth = 4;
    add(textArea, grid);

    grid.gridy = 1;
    grid.gridx = 0;
    grid.anchor = GridBagConstraints.LINE_END;
    add(button1, grid);

    grid.gridx = 1;
    add(button2, grid);

    grid.gridx = 2;
    add(button3,grid);

    grid.gridx = 3;
    add(button4,grid);

    grid.gridx = 4;
    add(button5,grid);

    grid.gridx = 5;
    add(button6,grid);


}

如何使刷新按钮停留在左侧,并且textArea出现在第二行上方,并占用gridx = 1 <----> gridx = 5空间?

充满鳗鱼的气垫船
  • 您的JTextArea的grid.gridx应该为1,而其grid.gridwidth应该为5。
  • 如果您在任何地方都没有设置大小或referredSizes。
  • 您应该将该JTextArea包装在JScrollPane中,然后将滚动窗格添加到GUI中,而不是文本区域中。
  • 如果您没有pack()在显示顶级窗口之前调用它,请执行此操作。

例如:

在此处输入图片说明

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.*;

public class GridBagExample extends JPanel {

   public GridBagExample() {
      setLayout(new GridBagLayout());

      add(new JButton("Refresh"), createGbc(0, 0));
      add(new JScrollPane(new JTextArea(12, 20)), createGbc(1, 0, 5, 1));


      for (int i = 0; i < 6; i++) {
         String text = "Button: " + (10 - i); 
         JButton button = new JButton(text);
         add(button, createGbc(i, 1));
      }
   }

   private GridBagConstraints createGbc(int x, int y) {
      return createGbc(x, y, 1, 1);
   }

   private GridBagConstraints createGbc(int x, int y, int w, int h) {
      GridBagConstraints gbc = new GridBagConstraints();
      gbc.gridx = x;
      gbc.gridy = y;
      gbc.gridwidth = w;
      gbc.gridheight = h;
      gbc.fill = GridBagConstraints.HORIZONTAL;
      gbc.insets = new Insets(2, 2, 2, 2);
      return gbc;
   }

   private static void createAndShowGui() {
      GridBagExample mainPanel = new GridBagExample();

      JFrame frame = new JFrame("GridBagExample");
      frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
      frame.getContentPane().add(mainPanel);
      frame.pack();
      frame.setLocationByPlatform(true);
      frame.setVisible(true);
   }

   public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
         public void run() {
            createAndShowGui();
         }
      });
   }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java Swing 中的 GridBagLayout

来自分类Dev

Swing中组件的格式

来自分类Dev

Java Swing:无法使用 GridBagLayout 在整个 JPanel 中传播组件

来自分类Dev

与布局(的Java Swing)GridBagLayout的问题

来自分类Dev

Swing GridBagLayout发挥作用

来自分类Dev

带有屏幕调整大小的Swing GridBagLayout

来自分类Dev

在GridBagLayout中对齐JTextFields

来自分类Dev

Java Swing GridBagLayout-添加没有空格的按钮

来自分类Dev

Java Swing如何正确使用GridBagLayout和GridBagConstraints?

来自分类Dev

JTextfield在gridbaglayout中的全宽

来自分类Dev

Swing Chat HTML格式的消息

来自分类Dev

自动调整GridBagLayout中组件的大小

来自分类Dev

JToolBar IllegalArgumentException,当放回到GridBagLayout中时

来自分类Dev

使用GridBagLayout在JScrollPane中设置JList的宽度

来自分类Dev

如何在GridbagLayout中对齐字段

来自分类Dev

如何在GridBagLayout中设置组件的大小

来自分类Dev

我的JPanel中的GridBagLayout无法正常工作

来自分类Dev

如何在GridBagLayout中添加TiltledBorder?

来自分类Dev

GridBagLayout中右侧的1个组件

来自分类Dev

GridBagLayout中的列不均匀

来自分类Dev

GridBagLayout 中的项目没有正确对齐

来自分类Dev

Java Swing GridBagLayout() 跨越一个对象 3 行不起作用

来自分类Dev

Java中的Swing DJnative Swing示例

来自分类Dev

Swing中的增量图形

来自分类Dev

在Swing中布置键盘

来自分类Dev

Swing中的多态

来自分类Dev

在 Swing 中嵌入 JavaFX

来自分类Dev

Swing 中的 Javafx 表

来自分类Dev

GridBagLayout中的JScrollView中的组件绘制得太小