我编写了以下示例代码来解释我的问题:
Toolbar.java
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JToolBar;
public class Toolbar extends JToolBar {
private static final long serialVersionUID = 1L;
public Toolbar() {
JButton button = new JButton();
button.setSize(new Dimension(50,50));
add(button);
}
}
MainProgram.java
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MainProgram {
public static void main(String[] args) {
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BorderLayout());
Toolbar toolbar = new Toolbar();
mainPanel.add(toolbar, BorderLayout.NORTH);
JFrame frame = new JFrame();
frame.setTitle("Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.setSize(200, 200);
frame.setResizable(false);
frame.setVisible(true);
}
}
setSize()
方法不起作用。无论是否有setSize()
,结果都是相同的。
我也尝试使用setPreferredSize()
和setMinimumSize()
,但是相同,问题仍然存在。我怎么解决?
答案 0 :(得分:0)
您可以创建自己的类来扩展JButton并覆盖getMaximumSize()和getMinimumSize()方法:
以下是代码:
public class MyButton extends JButton {
@Override
public Dimension getMaximumSize() {
return new Dimension(32,32);
}
@Override
public Dimension getMinimumSize() {
return new Dimension(32,32);
}
}
您可以在此处阅读更多内容:http://www.coderanch.com/t/344902/GUI/java/Setting-default-size-JToolBar-Buttons
答案 1 :(得分:-1)
setPrefferedSize(...)
是正确的方法。 JPanel有一个FlowLayout的默认布局管理器,因此它应该可以工作,并在本地使用setPrefferedSize(...)
。