更改 JxBrowser JFrame 中 JButton 大小的问题
Problem with changing the size of a JButton within a JxBrowser JFrame
所以我正在使用 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/");
}
请帮帮我。
你真的应该看看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中进行过浏览器编程,所以我只是用了一些假人,但原理应该是一样的。
结果:
所以我正在使用 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/");
}
请帮帮我。
你真的应该看看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中进行过浏览器编程,所以我只是用了一些假人,但原理应该是一样的。
结果: