如何禁用组件在GridBagLayout中放大JPanel?

时间:2017-05-03 17:39:52

标签: java swing gridbaglayout

因此,在我的代码中,我创建了一个窗口,其中显示了两个选项,每个选项都是JButton之上的JLabel。但是,当其中一个JLabel中的文本太长时,它会将另一个“侧面”推出框架,因此您必须拉伸框架的宽度才能看到另一个按钮。

以下是它的外观:

应该如何看待:

https://i.stack.imgur.com/xgz0B.png

文字太长时的外观

https://i.stack.imgur.com/DQMS0.png

如何使JLabel不会将另一面推出我尝试使用setMaximumSize()的框架,但这似乎没有做任何事情。

以下是管理此代码的代码片段:

    GridBagConstraints c = new GridBagConstraints();
    JPanel options = new JPanel(new GridBagLayout());

    JLabel artistOne = new JLabel(one.getArtist());
    JLabel artistTwo = new JLabel(two.getArtist());
    JButton albumOne = new JButton(one.getName());
    JButton albumTwo = new JButton(two.getName());

    albumOne.addActionListener(this);
    albumTwo.addActionListener(this);

    artistOne.setMaximumSize(new Dimension(100, 100));
    artistTwo.setMaximumSize(new Dimension(100, 100));
    albumOne.setMaximumSize(new Dimension(100, 100));
    albumTwo.setMaximumSize(new Dimension(100, 100));

    c.insets = new Insets(0, 25, 0, 25);

    c.gridx = 0;
    c.gridy = 0;
    options.add(artistOne, c);

    c.gridx = 0;
    c.gridy = 1;
    options.add(albumOne, c);

    c.gridheight = 1;
    c.gridx = 2;
    c.gridy = 0;
    options.add(artistTwo, c);

    c.gridx = 2;
    c.gridy = 1;
    options.add(albumTwo, c);

    pane.add(options);

0 个答案:

没有答案