增加JToolbar中空JButton的大小

时间:2015-08-31 17:08:29

标签: java user-interface resize size jbutton

我编写了以下示例代码来解释我的问题:

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(),但是相同,问题仍然存在。我怎么解决?

2 个答案:

答案 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(...)