我真的不明白为什么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);
            }
        });
    }
}

最佳答案

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

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


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

09-13 05:39