Java 如何在JSplitPane中对齐单选按钮?
我试图在这里对齐我的程序中的单选按钮。有人能帮我吗?我不知道该怎么办。我在这里和其他地方搜索过,似乎找不到一个适用的例子。下面是我相信的代码的相关部分。如果需要更多,我将编辑Java 如何在JSplitPane中对齐单选按钮?,java,swing,layout-manager,jradiobutton,jsplitpane,Java,Swing,Layout Manager,Jradiobutton,Jsplitpane,我试图在这里对齐我的程序中的单选按钮。有人能帮我吗?我不知道该怎么办。我在这里和其他地方搜索过,似乎找不到一个适用的例子。下面是我相信的代码的相关部分。如果需要更多,我将编辑 final class SplitPanel extends JFrame { private FlowLayout flowLayout = new FlowLayout(); private GridLayout gridLayout = new GridLayout(4, 1); privat
final class SplitPanel extends JFrame {
private FlowLayout flowLayout = new FlowLayout();
private GridLayout gridLayout = new GridLayout(4, 1);
private DiagLayout diagLayout = new DiagLayout();
private JRadioButton jrbFlowLayout = new JRadioButton("Horizontal");
private JRadioButton jrbGridLayout = new JRadioButton("Verticle");
private JRadioButton jrbDiagLayout = new JRadioButton("Diagonal");
private JButton jbt1 = new JButton("Button 1");
private JButton jbt2 = new JButton("Button 2");
private JButton jbt3 = new JButton("Button 3");
private JButton jbt4 = new JButton("Button 4");
private JSplitPane jSplitPane;
private JPanel jPanel1, jPanel2;
public SplitPanel() {
this.setTitle("Split Panel with Diagonalization");
this.setSize(600, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
createPanel1();
createPanel2();
jSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
jPanel1, jPanel2);
jSplitPane.setOneTouchExpandable(true);
jSplitPane.setContinuousLayout(true);
jSplitPane.setDividerLocation(150);
getContentPane().add(jSplitPane);
}
public void createPanel1() {
jPanel1 = new JPanel();
jPanel1.setBorder(new TitledBorder("Select a Layout Manger"));
jPanel1.add(jrbFlowLayout);
jPanel1.add(jrbGridLayout);
jPanel1.add(jrbDiagLayout);
ButtonGroup buttonGroup1 = new ButtonGroup();
buttonGroup1.add(jrbFlowLayout);
buttonGroup1.add(jrbGridLayout);
buttonGroup1.add(jrbDiagLayout);
}
public void createPanel2() {
jPanel2 = new JPanel();
jPanel2.setLayout(diagLayout);
jPanel2.add(jbt1);
jPanel2.add(jbt2);
jPanel2.add(jbt3);
jPanel2.add(jbt4);
jrbFlowLayout.addActionListener (new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jPanel2.setLayout(flowLayout);
jPanel2.validate();
}
});
jrbGridLayout.addActionListener (new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jPanel2.setLayout(gridLayout);
jPanel2.validate();
}
});
jrbDiagLayout.addActionListener (new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jPanel2.setLayout(diagLayout);
jPanel2.validate();
}
});
}
谢谢你的帮助 JPanel的默认布局是FlowLayout。 您可能希望将面板布局设置为GridLayout甚至BoxLayout 在
JPanel的默认布局是FlowLayout。 您可能希望将面板布局设置为GridLayout甚至BoxLayout 在
为您的
jPanel1
public void createPanel1() {
jPanel1 = new JPanel();
//jPanel1.setLayout(new GridLayout(0, 1);
jPanel1.setLayout(new BoxLayout(jPanel1, BoxLayout.Y_AXIS));
jPanel1.setBorder(new TitledBorder("Select a Layout Manger"));
jPanel1.add(jrbFlowLayout);
jPanel1.add(jrbGridLayout);
jPanel1.add(jrbDiagLayout);
ButtonGroup buttonGroup1 = new ButtonGroup();
buttonGroup1.add(jrbFlowLayout);
buttonGroup1.add(jrbGridLayout);
buttonGroup1.add(jrbDiagLayout);
}
GridLayout
BoxLayout
我几乎建议您使用
GridBagLayout
,但在这种情况下,这可能有些过头了…请为您的jPanel1
尝试不同的布局管理器
public void createPanel1() {
jPanel1 = new JPanel();
//jPanel1.setLayout(new GridLayout(0, 1);
jPanel1.setLayout(new BoxLayout(jPanel1, BoxLayout.Y_AXIS));
jPanel1.setBorder(new TitledBorder("Select a Layout Manger"));
jPanel1.add(jrbFlowLayout);
jPanel1.add(jrbGridLayout);
jPanel1.add(jrbDiagLayout);
ButtonGroup buttonGroup1 = new ButtonGroup();
buttonGroup1.add(jrbFlowLayout);
buttonGroup1.add(jrbGridLayout);
buttonGroup1.add(jrbDiagLayout);
}
GridLayout
BoxLayout
我几乎建议使用
GridBagLayout
,但在这种情况下,这可能太过分了…太好了!多谢各位。比我想象的简单多了!好极了!多谢各位。比我想象的简单多了!