加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

按钮大小(Java)

发布时间:2020-12-15 00:58:34 所属栏目:Java 来源:网络整理
导读:我用 Java创建了一个简单的菜单,但我无法弄清楚如何更改按钮的大小. 我的菜单看起来像这样: 我希望最后一个按钮与其他按钮一样大小. tlacTisk.setSize(10,10);tlacTisk.setPreferredSize(10,10); 不起作用. 代码,我创建按钮和框: JButton tlacSVG = new JB
我用 Java创建了一个简单的菜单,但我无法弄清楚如何更改按钮的大小.
我的菜单看起来像这样:

我希望最后一个按钮与其他按钮一样大小.

tlacTisk.setSize(10,10);
tlacTisk.setPreferredSize(10,10);

不起作用.

代码,我创建按钮和框:

JButton tlacSVG = new JButton();
        tlacSVG.setText("Export do SVG");
        tlacSVG.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                exportujSVG();
            }
        });

        JButton tlacPNG = new JButton();
        tlacPNG.setText("Export do PNG");
        tlacPNG.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                exportujPNG();
            }
        });

        JButton tlacTisk = new JButton();
        tlacTisk.setText("Tisk...");
        tlacTisk.setPreferredSize(new Dimension(50,25));
        tlacTisk.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                tiskni();
            }
        });


        Box boxTlacitek = Box.createVerticalBox();
        boxTlacitek.add(Box.createVerticalStrut(5));
        boxTlacitek.add(tlacSVG);
        boxTlacitek.add(Box.createVerticalStrut(10));
        boxTlacitek.add(tlacPNG);
        boxTlacitek.add(Box.createVerticalStrut(10));
        boxTlacitek.add(tlacTisk);
        boxTlacitek.setBorder(BorderFactory.createTitledBorder("Menu"));

        okno.add(boxTlacitek,BorderLayout.EAST);

你能告诉我如何改变尺寸吗?谢谢.

解决方法

不同的布局管理器以不同方式处理首选大另外,使用setSize()设置大小不是一个好主意.让布局管理器为您做布局.有关更多详细信息和示例,请参见 A Visual Guide to Layout Managers.

例如,您可以创建一个包含按钮的单独面板.将其布局设置为GridLayout.在此布局中,组件占用其单元中的所有可用空间,并且每个单元的大小完全相同.将此面板添加到容器中.有关示例,请参见How to Use GridLayout.

这是GridLayout和GridBagLayout的简单演示:

import java.awt.*;
import javax.swing.*;

public class DemoButtons {
    public DemoButtons() {
        final JFrame frame = new JFrame("Demo buttons");
        frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);

        JPanel buttonPanel = new JPanel(new GridLayout(3,1));
        buttonPanel.add(new JButton("Export do SVG"));
        buttonPanel.add(new JButton("Export do PNG"));
        buttonPanel.add(new JButton("Tisk..."));

        JPanel east = new JPanel(new GridBagLayout());
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.anchor = GridBagConstraints.NORTH;
        gbc.weighty = 1;
        east.add(buttonPanel,gbc);

        JPanel center = new JPanel(){
            @Override
            public Dimension getPreferredSize() {
                return new Dimension(200,200);
            }
        };
        center.setBorder(BorderFactory.createLineBorder(Color.BLACK));

        frame.add(east,BorderLayout.EAST);
        frame.add(center);

        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e) {
            e.printStackTrace();
        }
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new DemoButtons();
            }
        });
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读