按钮大小不会改变

时间:2017-08-26 17:49:00

标签: java swing

我真的不明白为什么JLabel background BoxLayoutamico.setPreferredSize(new Dimension(320, 240));的按钮尺寸没有增加,问题是什么?谢谢

代码:

public class JavaApplication30 extends JFrame
{
    private final JButton amico;
    private final JButton bello;
    private final JButton compagno;

    public JavaApplication30(File imageFile)
    {
        JLabel background = new JLabel(new ImageIcon(imageFile.getAbsolutePath()));
        add(background);
        background.setLayout(new BoxLayout(background, BoxLayout.Y_AXIS));
        amico=new JButton("Amico");
        amico.setPreferredSize(new Dimension(320, 240));
        bello=new JButton("Bello");
        compagno=new JButton("Compagno");
        background.add(Box.createRigidArea(new Dimension(0,100)));
        background.add(amico);
        background.add(Box.createRigidArea(new Dimension(0,30)));
        background.add(bello);
        background.add(Box.createRigidArea(new Dimension(0,30)));
        background.add(compagno);

        setTitle("Prova");
        pack();
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) throws IOException 
    {
        SwingUtilities.invokeLater(new Runnable() 
        {
            @Override
            public void run() 
            {
                String filepath = "C:\\Users\\user\\Documents\\NetBeansProjects\\JavaApplication29\\src\\eila.jpg";
                File imageFile = new File(filepath);
                JavaApplication30 frame = new JavaApplication30(imageFile);
                frame.setVisible(true);
            }
        });
    }
}

1 个答案:

答案 0 :(得分:0)

您可以尝试执行以下操作:

amico = new JButton("Amico") {
     {
          setSize(new Dimension(320, 240));
          setMaximumSize(getSize());
     }
};

应该有所帮助。祝你好运。