Java 手工创建GUI表单
我有一个jframe,它包含三个文本字段和两个单选按钮(用于选择是或否) 应该是这样的: 但是,根据我的代码,它是这样的: 我的代码:Java 手工创建GUI表单,java,swing,Java,Swing,我有一个jframe,它包含三个文本字段和两个单选按钮(用于选择是或否) 应该是这样的: 但是,根据我的代码,它是这样的: 我的代码: public class editFrame extends JFrame { JButton saveButton; JButton cancelButton; JRadioButton radioB1; JRadioButton radioB2; public editFrame() { JPanel wrapper = new JPane
public class editFrame extends JFrame {
JButton saveButton;
JButton cancelButton;
JRadioButton radioB1;
JRadioButton radioB2;
public editFrame() {
JPanel wrapper = new JPanel();
wrapper.add(createForm());
add(wrapper, BorderLayout.WEST);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(100, 50, 500, 600);
this.setVisible(true);
}
public JPanel createForm() {
String[] labels = {"ID", "Name", "Date"};
JPanel panel = new JPanel();
JTextField idtf = new JTextField(10);
JTextField nametf = new JTextField(10);
JTextField datetf = new JTextField(10);
panel.add(idtf);
panel.add(nametf);
panel.add(datetf);
radioB1 = new JRadioButton("Yes");
radioB2 = new JRadioButton("No");
ButtonGroup group = new ButtonGroup();
group.add(radioB1);
group.add(radioB2);
panel.add(radioB1);
panel.add(radioB2);
saveButton = new JButton("update");
cancelButton = new JButton("Cancel");
panel.add(saveButton);
panel.add(cancelButton);
SpringLayout sL = new SpringLayout();
panel.setLayout(sL);
SpringUtilities.makeCompactGrid(panel, 3, 2, 100, 50, 15, 20);
return panel;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
editFrame edF = new editFrame();
}
});
}
}
单选按钮旁边不显示借用状态文本。
我的第二个主要问题是,使用此代码,我无法访问文本字段。
我需要稍后访问文本字段…首先,收音机的标签没有显示,因为您没有创建它并将其添加到面板中。创建它并将其添加到radioB1之前的面板。此外,您应该在radioB2之前添加一些不可见(empy)标签(或者使用其他填充组件填充单元格-这可能会有所帮助:) 此外,您还可以向面板添加另一个填充组件,而不是saveButton。然后我将创建另一个面板(buttonPane),其中包含保存和取消按钮,并将此buttonPane添加到主面板,而不是cancelButton。按钮面板可以使用BoxLayout,按钮之间可以使用水平胶水(如上面的链接所示)
应该是这样。但这里有一个警告。您在循环中创建JTextFields的方式使您以后无法引用它们,也就是说,当您需要获取文本时。您应该将它们的引用保留为单个变量,或者将它们添加到数组中,以便在按下“更新”按钮时获得值。如果您使用的是Netbeans IDE,那么它允许对swing进行可视化设计apps@Abu是的,它有那个功能,但我想手工创建GUI…使用那个功能,然后比较你的实现,因为有时候它很难通过-hand@Abu我非常不同意使用GUI设计器。如果他通过拖放来创建swing,他永远不会理解它。@Sajjad-我认为你需要通过官方的swing可视化布局教程。从一开始,一个接一个地理解每个布局。然后进行GUI设计。这很容易相信我。。