Java 使用弹出窗口将项目添加到arraylist
我试图使用弹出式面板输入信息,以便添加到我的arraylist中。我找到了这个密码Java 使用弹出窗口将项目添加到arraylist,java,netbeans,arraylist,Java,Netbeans,Arraylist,我试图使用弹出式面板输入信息,以便添加到我的arraylist中。我找到了这个密码 import javax.swing.*; public class JOptionPaneMultiInput { public static void main(String[] args) { JTextField xField = new JTextField(15); JTextField yField = new JTextField(15);
import javax.swing.*;
public class JOptionPaneMultiInput {
public static void main(String[] args) {
JTextField xField = new JTextField(15);
JTextField yField = new JTextField(15);
JTextField zField = new JTextField(15);
JPanel myPanel = new JPanel();
myPanel.add(new JLabel("Item Name:"));
myPanel.add(xField);
myPanel.add(Box.createVerticalStrut(15)); // a spacer
myPanel.add(new JLabel("Number in inventory:"));
myPanel.add(yField);
myPanel.add(Box.createVerticalStrut(15)); // a spacer
myPanel.add(new JLabel("Unit Price:"));
myPanel.add(zField);
int result = JOptionPane.showConfirmDialog(null, myPanel,
"Please Enter data into all boxes", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION) {
}
}
}
它自己工作并显示我需要显示的内容,但是如何让它与我的actionListner一起工作?我希望它在用户单击add按钮时弹出
我也不知道如何将这些信息输入到以前构建的存储的arraylist中,但如果需要,我可以将其作为一个单独的问题 试试看
JButton but = new JButton("Popup");
but.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
final JPanel myPanel = new PopupPanel();// Create a separate class extends JPanel
int result = JOptionPane.showConfirmDialog(null, myPanel,
"Please Enter data into both boxes", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION) {
}
}
});
通过创建一个单独的类并在action listener中调用该方法,我可以让窗口弹出一个action listener。该类如下所示:
public class JOptionPaneMultiInput {
public static void main(String[] args) {
buildWindow();
}
public static void buildWindow() {
JTextField xField = new JTextField(15);
JTextField yField = new JTextField(15);
JTextField zField = new JTextField(15);
JPanel myPanel = new JPanel();
myPanel.add(new JLabel("Item Name:"));
myPanel.add(xField);
myPanel.add(Box.createVerticalStrut(15)); // a spacer
myPanel.add(new JLabel("Number in inventory:"));
myPanel.add(yField);
myPanel.add(Box.createVerticalStrut(15)); // a spacer
myPanel.add(new JLabel("Unit Price:"));
myPanel.add(zField);
int result = JOptionPane.showConfirmDialog(null, myPanel,
"Please Enter data into all boxes", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION) {
String newItemName = String.valueOf(xField);
String newInventoryNumber = String.valueOf(yField);
int newNumber = Integer.parseInt(newInventoryNumber);
String newUnitPrice = String.valueOf(zField);
double newPrice = Double.parseDouble(newUnitPrice);
}
}
}
addButton.addActionListener(
new ActionListener() {
@Override
public void actionPerformed(ActionEvent e
) {
JOptionPaneMultiInput.buildWindow();
}
}
);
我的action listener看起来就像这样:
public class JOptionPaneMultiInput {
public static void main(String[] args) {
buildWindow();
}
public static void buildWindow() {
JTextField xField = new JTextField(15);
JTextField yField = new JTextField(15);
JTextField zField = new JTextField(15);
JPanel myPanel = new JPanel();
myPanel.add(new JLabel("Item Name:"));
myPanel.add(xField);
myPanel.add(Box.createVerticalStrut(15)); // a spacer
myPanel.add(new JLabel("Number in inventory:"));
myPanel.add(yField);
myPanel.add(Box.createVerticalStrut(15)); // a spacer
myPanel.add(new JLabel("Unit Price:"));
myPanel.add(zField);
int result = JOptionPane.showConfirmDialog(null, myPanel,
"Please Enter data into all boxes", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION) {
String newItemName = String.valueOf(xField);
String newInventoryNumber = String.valueOf(yField);
int newNumber = Integer.parseInt(newInventoryNumber);
String newUnitPrice = String.valueOf(zField);
double newPrice = Double.parseDouble(newUnitPrice);
}
}
}
addButton.addActionListener(
new ActionListener() {
@Override
public void actionPerformed(ActionEvent e
) {
JOptionPaneMultiInput.buildWindow();
}
}
);
将其插入我的actionlistener会弹出确认对话框,但不会填充我的JOptionPaneMultiInput面板。我将您的PopupPanel更改为JOptionPaneMultiInput,但它仍然只填充了确认。@kerinr,从JOpationPane.showConfirmDialog填充值的方法不正确。改用JDialog。