Tag: gridbaglayout

Java列问题中的GridBagLayout

我正在尝试使用GridBagLayout布局管理器来实现此目的: 但是,我目前得到的是: 问题是橙色和棕色/灰色面板应该占据第二列,但似乎只想在运行代码时占据第三列。 我用于布局的代码: Container contentPane = form.getContentPane(); contentPane.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); JPanel pnlGame = new JPanel(); pnlGame.setBackground(Color.green); //temp c.gridx = 0; c.gridy = 0; c.gridwidth = 2; c.gridheight = 2; c.fill = GridBagConstraints.BOTH; c.weightx = 0.85; c.weighty = 0.65; contentPane.add(pnlGame, c); JPanel pnlBuy = new JPanel(); c.gridx = 2; pnlBuy.setBackground(Color.blue); //temp […]

SetVisible(false)更改我的Panel中组件的布局

当我将其中一个子面板设置为不可见时,如何使主面板中的子面板保持原样? 我看起来像: [ (Panel1) (Panel2) (Panel3) (Panel4) ] 当我执行panel3.setVisible(false)它看起来像: [ (Panel1) (Panel2) (Panel4) ] 我希望它看起来像: [ (Panel1) (Panel2) (Panel4) ] 我正在使用GridBagLayout,我的mainPanel声明如下所示: final JPanel panel = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); 我添加了一个新的面板,如: final JTextField valueTextField = new JTextField(); valueTextField.setPreferredSize(new Dimension(80, 25)); valueTextField.setName(“Value”); c.gridx =0; panel.add(valueTextField, c); 如果需要,我会提供更多代码,我不关心我使用哪种布局,只要它能得到我想要的东西。

从Java Swing的左上角开始GridBagLayout

我是Java Swing的新手,我一直在努力从左上角开始GridBagLayout,这样c.gridx = 0 c.gridy = 0会将我的对象放在左上角。 如果你能在这一点之后告诉我需要做什么,我会很感激。 JPanel panel = new JPanel(new GridBagLayout()); frame.add(panel); GridBagConstraints c = new GridBagConstraints(); 我知道我必须使用NORTHWEST或FIRST_LINE_START常量,但我不知道如何。 我试图这样做’但它没有意识到常数。 frame.getContentPane().add(panel, BorderLayout.NORTHWEST); 谢谢你的帮助。

在JLayeredPane中使用GridBagLayout

我试图在JPanel的右上角有一个小的浮动“小部件”。 它是一个固定大小的组件 – 如果有帮助的话,可以考虑谷歌地图中的指南针。 我意识到JLayeredPane只对所有层使用一个布局管理器,因此认为使用GBL成功: – 使右上角(1,0)框非常小并将窗口小部件放在那里 – 使内容面板具有宽度/身高2 但经过实验,似乎GBL在重叠时会删除一些组件。 任何人都可以建议一种伪造这种行为的方法吗?

了解GridBagLayout约束

我是一个相对较新的摇摆,我试图弄清楚它是如何工作的。 告诉我,如果我错了。 我主要想出了放置组件所必需的gridx和gridy。 您至少需要n个值(gridx,gridy)才能创建nxn网格。 例如(5,5),(3,3),(4,9),(3,10)将创建一个3×4网格空间(4行,3列),其中组件分别使用上面的(gridx,gridy)放置在细胞(3,2),(1,2),(2,3),(1,4)中。 weightx和weighty似乎有两个函数,一个> 0的weightx值和weighty将网格单元拉伸到边缘(否则它是集中的)我们也可以设置比例与组件的大小 – 所以如果一个组件有gridx = 0.1和anothr有0.2,然后后者可能是两倍宽。 但是,在按比例分量时,会考虑组件的最小默认宽度和高度。 需要填充以将组件拉伸到单元格的边缘。 如果没有填充,组件将保持在中心位置。 但是我们可以在这种情况下使用锚来定位组件沿着单元格的西北角而不是中心。 插图在单元格边缘内创建一个空间墙。 ipadx和ipady推动包含单元格的列或行的边界。 但我无法弄清楚网格宽度和网格高度是如何工作的。 考虑下面的这个例子。这4个按钮放在4×4网格空间的单元格b1(3,2),b2(1,1),b3(2,3),b4(4,4)中。 如何使按钮(例如b2或b4)占据它占据的单元格的整个行或列? import javax.swing.*; import java.awt.*; //import java.awt.event.*; public class Swing29a { public static void main(String[] args) { JFrame f1= new JFrame(“GridBag Layout Test”); f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f1.setResizable(true); f1.setLocation(200,100); f1.setSize(800,800); JPanel p1 = new JPanel(); p1.setBackground(Color.black); f1.add(p1); JButton b1= […]

Java GridBagLayout无法正常工作

我正在尝试使用GridBagLayout ,但我没有得到我所期望的,我在这段代码中找不到错误: public class GridBagEx1 extends JPanel { private static final long serialVersionUID = 1L; protected void makebutton(String name, GridBagLayout gridbag, GridBagConstraints c) { JButton button = new JButton(name); gridbag.setConstraints(button, c); add(button); } public void init() { GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); setLayout(gridbag); c.fill = BOTH; c.weightx = 1.0; c.weighty […]

第二行gridbaglayout滚出容器

我正在尝试实现类似于旋转木马的布局。 它需要水平添加图像,第二行包含复选框字段。 我在jscrollpane中有一个面板,单个图像作为标签添加到面板中。 请看屏幕截图。 截图 当我滚动窗格时,包含图像的第一行在面板中保持良好状态。但是如果您注意到第二行复选框,它将滚出面板。 这是代码…… JLabel lab1=new JLabel(); for (int ii=0; ii<imageFiles.length; ii++) { GridBagConstraints constraint = new GridBagConstraints(); lab1 = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB); constraint.gridx = ii; constraint.gridy =0; jPanel9.add(lab1,constraint); } for (int ii=0; ii<imageFiles.length; ii++) { GridBagConstraints constraint1 = new GridBagConstraints(); constraint1.anchor = GridBagConstraints.SOUTH; chkbox = new Checkbox("asdasdada"); constraint1.gridx = ii; constraint1.gridy =1; […]

JTable尺寸问题

我遇到了JTables的问题我知道我的代码有点难以理解,它也有点混乱,因为它来自一个相当大的程序。 是的,我刚刚了解了java命名约定,其中不使用大写字母启动变量。 final JFrame Menu = new JFrame(“Crime Database 2013”); Dimension screenSize0 = Menu.getToolkit().getScreenSize(); Menu.setBounds(screenSize0.width / 4, screenSize0.height / 4, screenSize0.width / 2, screenSize0.height / 2); Menu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Menu.setVisible(true); JPanel options = new JPanel(new GridBagLayout()); GridBagConstraints a = new GridBagConstraints(); Menu.add(options); JButton show = new JButton(“Show all records”); a.gridx = 0; a.gridy = 1; options.add(show, a); […]

使用GridBagLayout在菜单栏下方定位按钮

我想将下面的两个按钮添加到JMenuBar 。 我在GUI的整个窗口使用根JPanel ,我添加了不同的组件,到目前为止,两个,菜单栏和包含两个按钮的面板。 但我不知道如何将GridBagConstraints放置在包含按钮的面板上,使其位于菜单栏下方。 这是我的代码: JFrame f = new JFrame(“Cliente AEMET”); JPanel panel_raiz = new JPanel();//root JPanel GridBagConstraints gbc = new GridBagConstraints(); public VentanaPrincipal (){ f.setSize(500, 400); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); panel_raiz.setLayout(new GridBagLayout()); //textoInfoMunicipio(); //ventana_aviso(); //descomentar si se quiere ver el JDialog //lista(); menus(); //the JMenuBar botones(); //the buttons //lista_desplegable(); //d.acerca_de(); f.setContentPane(panel_raiz); //here I put all the […]

Java GridBagConstraints

我在JPanel中有5个组件。 我添加了前4个组件,一切看起来都很顺畅。 但是,当我尝试向JPanel添加第5个组件时,组件之间的间距会因任何原因而改变! 没有第5部分: First Name: […………..] Last Name: […………..] 附: First Name:—————- [………….] Last Name:—————– [………….] What is your favorite sport: 假设标签和文本字段之间的破折号是空格 标签和文本字段之间的间距发生变化! 这是我的代码,请帮帮我! public static void main(String[] args) { JFrame frame = new JFrame(“Survey”); frame.setSize(800, 600); frame.setLayout(new FlowLayout(FlowLayout.CENTER)); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p1 = new JPanel(new GridBagLayout()); //LINE.START = Top Left Corner frame.add(p1); GridBagConstraints […]