在JxBrowser JFrame中更改JButton大小的问题

时间:2019-05-15 21:44:53

标签: java swing jxbrowser

所以我正在使用JxBrowser并将其添加到JFrame中。现在,我想在浏览器的右侧添加多个按钮,但这与我尝试的内容无关(test1.setSize或test1.setPreferredSize等,它不会更改大小)。

Picture of problem

此图中的红色矩形是我想要在JFrame右侧的JButton大小的示例。为什么JButton仍然那么大?

代码如下:

    public test() {
    test1 = new JButton("test");
    test1.addActionListener(this);
    browser = new Browser();
    view = new BrowserView(browser);

    JFrame frame = new JFrame("FOEBot - Gemaakt door Gerrit");
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.add(view, BorderLayout.CENTER);
    frame.add(test1, BorderLayout.AFTER_LINE_ENDS);
    frame.setSize(1500, 1000);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);

    browser.loadURL("https://www.google.nl/");
}

请帮帮我。

1 个答案:

答案 0 :(得分:1)

您真的应该看看Layout documentation

这里有一个例子,说明我如何解决您的问题。我将JButtons放入另一个用作BoxLayout的容器中:

public static void main(String[] args) {
    JPanel mainContainer = new JPanel();
    mainContainer.setLayout(new BorderLayout());

    JFrame jf = new JFrame();  
    jf.add(mainContainer);

    JPanel browser = new JPanel();
    JLabel browserDummy = new JLabel("Browser");
    browser.add(browserDummy);
    browserDummy.setFont(new Font("Arial", Font.BOLD, 200));

    JPanel buttonContainer = new JPanel();
    buttonContainer.setLayout(new BoxLayout(buttonContainer, BoxLayout.Y_AXIS));
    buttonContainer.add(new JButton("Button one"));
    buttonContainer.add(new JButton("Button two"));

    mainContainer.add(browser, BorderLayout.WEST);
    mainContainer.add(buttonContainer, BorderLayout.EAST);

    jf.setVisible(true);
    jf.pack();
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

我从来没有在Swing中对浏览器编程做任何事情,所以我只是使用了一些虚拟对象,但是原理应该是相同的。

结果: enter image description here