我正在開發我的第一個GUI應用程序。如何將JTextField和JCheckBox添加到ArrayList對象
我有一個ArrayList
的父類Plant
其中我有四個子類。
我有一些JTextField
s的一些信息和一些JCheckBox
s的其他信息......
的JTextField
S的關係轉化爲String
S和JCheckBox
s轉換boolean
。
我需要將所有這些組件添加到ArrayList
,然後顯示Plant
的列表。
我該怎麼做?
例子:
public class Flower extends Plant{
private boolean thorns;
private boolean smell;
public Flower(String name, String id, String color, boolean blnThorns, boolean blnSmell){
super(name, id, color);
thorns = blnThorns;
smell = blnSmell;
}
public boolean isThorns(){
return thorns;
}
public void setThorns(boolean blnThorns){
thorns = blnThorns;
}
public boolean isSmell(){
return smell;
}
public void setSmell(boolean blnSmell){
smell = blnSmell;
}
}
這是我的ArrayList
ArrayList<Plant> plantList = new ArrayList<Plant>();
在這裏,我嘗試添加的參數爲花:
private void addFlower(ArrayList<Plant> plantList){
//Adding window
JFrame addingFrame = new JFrame();
addingFrame.setTitle("Plant Database Interface");
addingFrame.setSize(600, 200);
addingFrame.setLocationRelativeTo(null);
addingFrame.setVisible(true);
//ADDING FRAME LAYOUT
addingFrame.setLayout(new BorderLayout());
//TRAITS
JPanel fields = new JPanel();
addingFrame.add(fields, BorderLayout.NORTH);
JLabel nameLabel = new JLabel("Name:");
JTextField nameField = new JTextField(15);
String name = nameField.getText();
JLabel idLabel = new JLabel("ID:");
JTextField idField = new JTextField(10);
String id = idField.getText();
JLabel colorLabel = new JLabel("Color:");
JTextField colorField = new JTextField(10);
String color = colorField.getText();
fields.add(nameLabel);
fields.add(nameField);
fields.add(idLabel);
fields.add(idField);
fields.add(colorLabel);
fields.add(colorField);
JPanel traits = new JPanel();
addingFrame.add(traits , BorderLayout.CENTER);
JCheckBox thornsBox = new JCheckBox("Thorns Present");
thornsBox.setSelected(false);
traits.add(thornsBox);
JCheckBox smellBox = new JCheckBox("Smell Present");
smellBox.setSelected(false);
traits.add(smellBox);
JPanel southPanel = new JPanel();
addingFrame.add(southPanel, BorderLayout.SOUTH);
JButton addPlantBtn = new JButton("Add Plant");
southPanel.add(addPlantBtn, BorderLayout.EAST);
JButton cancelBtn = new JButton("Cancel");
southPanel.add(cancelBtn, BorderLayout.WEST);
boolean blnThorns;
boolean blnSmell;
//I REALLY DON'T KNOW HOW TO DO THIS PART
thornsBox.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
if(e.getStateChange() == ItemEvent.SELECTED){
blnThorns =true;
}
else{
blnThorns = false;
}
}
});
smellBox.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
if(e.getStateChange() == ItemEvent.SELECTED){
blnSmell =true;
}
else{
blnSmell = false;
}
}
});
addPlantBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//plantList.add(new Flower(name, id, color, blnThorns, blnSmell)); //HOW TO DO????................
}
});
cancelBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
addingFrame.dispatchEvent(new WindowEvent(addingFrame, WindowEvent.WINDOW_CLOSING));
}
});
}
只需嘗試'String jTextFieldValue = JTextField.getText();'然後添加'jTextFieldValue'到你的'ArrayList' – mustangDC
Yo Downvoter ...這是一個體面的問題..請評論 –