JLabel titleLabel = new JLabel(title, SwingConstants.CENTER);
titleLabel.setForeground(Color.DARK_GRAY);
titleLabel.setFont(new Font("Comic Sans MS", Font.PLAIN, 15));
add(titleLabel, BorderLayout.PAGE_START);
JLabel descLabel = new JLabel("<html>description");
descLabel.setForeground(Color.GRAY);
descLabel.setFont(new Font("Comic Sans MS", Font.PLAIN, 13));
add(descLabel, BorderLayout.PAGE_START);
JLabel picLabel = new JLabel(new ImageIcon(Home.class.getResource("/icon/img.jpg")));
picLabel.setIconTextGap(-310);
picLabel.setOpaque(true);
picLabel.setLayout(null);
add(picLabel);
JPanel buttonPanel = new JPanel();
buttonPanel.setBorder(new LineBorder(Color.BLACK, 1, true));
JButton btnDetails = new JButton("Dettagli");
JButton btnDetails2 = new JButton("Modifica");
buttonPanel.add(btnDetails);
buttonPanel.add(btnDetails2);
add(buttonPanel);
我想更改面板的尺寸(参见图片)并将其与图像对齐。
有什么建议吗?
最佳答案
更改主面板的布局以使用BorderLayout
。
然后将 picLabel
添加为 add(picLabel, BorderLayout.CENTER)
并将您的 ButtonPanel 添加为 add(buttonPanel, BorderLayout.SOUTH)
你应该得到更好的布局。
打包对话框/框架也会有所帮助。
您不能将两个标签添加到 BorderLayout 中的同一位置。您的标签 descLabel
将替换您的titleLabel
您可以像按钮一样执行此操作:创建另一个面板,垂直添加两个标签,然后使用 BorderLayout.NORTH
(或 PAGE_START)将其添加到主面板
关于Java swing jpanel 尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34594306/