Java 如何在不更改其所在的Jpanel大小的情况下更改Jbuttons的大小?
所以我在屏幕上有两个面板。一个设置为向西,另一个设置为居中以占据屏幕的其余部分。 我遇到的问题是:Java 如何在不更改其所在的Jpanel大小的情况下更改Jbuttons的大小?,java,swing,jpanel,jbutton,layout-manager,Java,Swing,Jpanel,Jbutton,Layout Manager,所以我在屏幕上有两个面板。一个设置为向西,另一个设置为居中以占据屏幕的其余部分。 我遇到的问题是: 当我改变按钮的大小时,它要么也改变面板的大小,要么什么都不做。注释掉的那行就是我要做的。如何在不改变面板大小的情况下使按钮变小 这两个按钮在调整大小方面总是一样的吗?或者,有没有一种方法可以使不同的按钮在不同的大小之间有不同的空间,而不必将它们分配给不同的面板 当我改变按钮的大小时,它要么也改变面板的大小,要么什么都不做 您不需要更改组件的大小。只需让布局管理器调整组件的大小即可 这两个按钮在调
当我改变按钮的大小时,它要么也改变面板的大小,要么什么都不做 您不需要更改组件的大小。只需让布局管理器调整组件的大小即可 这两个按钮在调整大小方面总是一样的吗 这不是必需的。这取决于您使用的布局 有没有一种方法可以使不同的按钮具有不同的大小和不同的间距,而不必将它们分配给不同的面板 是的,您可以使用实现它
您的预期输出是什么?你能贴一张照片吗?
public MainPanel() {
super();
this.setLayout(new BorderLayout());
buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(5, 1));
buttonPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
this.add(buttonPanel, BorderLayout.WEST);
centerPanel = new JPanel();
centerPanel.setBackground(Color.black);
centerPanel.setOpaque(true);
centerPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
this.add(centerPanel, BorderLayout.CENTER);
JButton options = new JButton("Options");
//options.setPreferredSize(new Dimension(100, 100));
buttonPanel.add(options);
options.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
RichardDemo.this.switchPanel(MainPanel.this);
}
});
JButton start = new JButton("Start Game");
buttonPanel.add(start);
start.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
}
});
}
}