如何从文本字段获取值?

发布于 2025-01-10 02:33:17 字数 5533 浏览 0 评论 0原文

我正在创建一个可以添加和删除项目的程序。添加后,我希望在单击 ADD 按钮时,TOTAL 面板从 itemprice_textfield 获取值。

private JFrame frame;
private JTextField itemname_textfield;
private JTextField itemprice_textfield;
private JButton add_button;
private JComboBox comboBox;
private JButton del_button;
private JLabel itemprice_label;
private JLabel itemname_label;
private JLabel lblNewLabel_3;
private JLabel totalamount_label;
private JTextField textField_2;
private double amount;
private JLabel bigger_itemname_label;
private JLabel bigger_itemprice_label;
private ArrayList <String> itemnames = new ArrayList();
private ArrayList <Double> itemprices = new ArrayList();
private JTable table;


//DefaultTableModel dtm;
//String header [] = new String [] {itemname_textfield, itemprice_textfield};



public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                EntapaCCE103LabExam1_Frame1 window = new EntapaCCE103LabExam1_Frame1();
                window.frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

public class lists{ // user defined method lists class
    public String itemname;
    public double price;
    
    public lists(String itemname, double price) 
    {
        this.itemname = itemname;
        this.price = price;
        
    }

    public lists(JTextField textField) {
        // TODO Auto-generated constructor stub
    }

    public lists(JTextField textField, JTextField textField_1) {
        // TODO Auto-generated constructor stub
    }
                } // end

public EntapaCCE103LabExam1_Frame1() {
    initialize();
}



private void initialize() {
    frame = new JFrame();
    frame.setBounds(100, 100, 600, 600);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.getContentPane().setLayout(null);
    
    JLabel big_title = new JLabel("MY ORDERS");
    big_title.setFont(new Font("Times New Roman", Font.PLAIN, 18));
    big_title.setBounds(245, 11, 116, 52);
    frame.getContentPane().add(big_title);
    
    itemname_textfield = new JTextField(10); // name text
    itemname_textfield.setBounds(412, 268, 109, 20);
    frame.getContentPane().add(itemname_textfield);
    itemname_textfield.setColumns(10);
    
    itemprice_textfield = new JTextField(); // price text
    itemprice_textfield.setBounds(412, 330, 109, 20);
    frame.getContentPane().add(itemprice_textfield);
    itemprice_textfield.setColumns(10);
    
    add_button = new JButton("ADD ITEM");
    add_button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {    
            String getname = itemname_textfield.getText(); // used to get the input string from user to transfer to the combo box
            comboBox.addItem(getname); // used to display the received string inputs
        }
    });
    add_button.setFont(new Font("Serif", Font.PLAIN, 13));
    add_button.setBounds(412, 361, 109, 23);
    frame.getContentPane().add(add_button);
    
    comboBox = new JComboBox();
    comboBox.setBounds(412, 479, 109, 22);
    frame.getContentPane().add(comboBox);
    
    del_button = new JButton("DELETE ITEM");
    del_button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            comboBox.removeItem(comboBox.getSelectedItem()); // used to delete the selected index in combo box.
        }
    });

    del_button.setFont(new Font("Serif", Font.PLAIN, 11));
    del_button.setBounds(412, 512, 109, 23);
    frame.getContentPane().add(del_button);
    
    itemprice_label = new JLabel("Enter Item Price:"); // label for item price
    itemprice_label.setBounds(412, 311, 109, 14);
    frame.getContentPane().add(itemprice_label); // used to display the text from label
    
    itemname_label = new JLabel("Enter Item Name:"); // label for item name
    itemname_label.setBounds(412, 249, 102, 14);
    frame.getContentPane().add(itemname_label); // used to display the text from label
    
    lblNewLabel_3 = new JLabel("OPERATION");
    lblNewLabel_3.setFont(new Font("Sitka Subheading", Font.PLAIN, 17));
    lblNewLabel_3.setBounds(419, 185, 102, 32);
    frame.getContentPane().add(lblNewLabel_3);
    String getname = itemname_textfield.getText();
    
    totalamount_label = new JLabel("TOTAL: " + amount);              // amount here
    totalamount_label.setFont(new Font("Serif", Font.PLAIN, 13));
    totalamount_label.setBounds(412, 130, 136, 20);
    frame.getContentPane().add(totalamount_label);

    bigger_itemname_label = new JLabel("ITEM NAME");
    bigger_itemname_label.setFont(new Font("Serif", Font.PLAIN, 14));
    bigger_itemname_label.setBounds(84, 190, 96, 14);
    frame.getContentPane().add(bigger_itemname_label);
    
    bigger_itemprice_label = new JLabel("PRICE");
    bigger_itemprice_label.setFont(new Font("Serif", Font.PLAIN, 14));
    bigger_itemprice_label.setBounds(245, 192, 46, 14);
    frame.getContentPane().add(bigger_itemprice_label);
    
    JScrollPane scrollPane = new JScrollPane();
    scrollPane.setBounds(39, 225, 322, 285);
    frame.getContentPane().add(scrollPane);
    
    table = new JTable();
    scrollPane.setViewportView(table);
    table.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
}
}

但我不知道该怎么做或做什么,因为我是 Java GUI 的新手。

另外,如果我的代码中有什么奇怪的地方,请告诉我,以便我进行改进。

I am creating a program where I can add and delete items. When added, I want the TOTAL panel to get values from itemprice_textfield when the button ADD is clicked.

private JFrame frame;
private JTextField itemname_textfield;
private JTextField itemprice_textfield;
private JButton add_button;
private JComboBox comboBox;
private JButton del_button;
private JLabel itemprice_label;
private JLabel itemname_label;
private JLabel lblNewLabel_3;
private JLabel totalamount_label;
private JTextField textField_2;
private double amount;
private JLabel bigger_itemname_label;
private JLabel bigger_itemprice_label;
private ArrayList <String> itemnames = new ArrayList();
private ArrayList <Double> itemprices = new ArrayList();
private JTable table;


//DefaultTableModel dtm;
//String header [] = new String [] {itemname_textfield, itemprice_textfield};



public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                EntapaCCE103LabExam1_Frame1 window = new EntapaCCE103LabExam1_Frame1();
                window.frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

public class lists{ // user defined method lists class
    public String itemname;
    public double price;
    
    public lists(String itemname, double price) 
    {
        this.itemname = itemname;
        this.price = price;
        
    }

    public lists(JTextField textField) {
        // TODO Auto-generated constructor stub
    }

    public lists(JTextField textField, JTextField textField_1) {
        // TODO Auto-generated constructor stub
    }
                } // end

public EntapaCCE103LabExam1_Frame1() {
    initialize();
}



private void initialize() {
    frame = new JFrame();
    frame.setBounds(100, 100, 600, 600);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.getContentPane().setLayout(null);
    
    JLabel big_title = new JLabel("MY ORDERS");
    big_title.setFont(new Font("Times New Roman", Font.PLAIN, 18));
    big_title.setBounds(245, 11, 116, 52);
    frame.getContentPane().add(big_title);
    
    itemname_textfield = new JTextField(10); // name text
    itemname_textfield.setBounds(412, 268, 109, 20);
    frame.getContentPane().add(itemname_textfield);
    itemname_textfield.setColumns(10);
    
    itemprice_textfield = new JTextField(); // price text
    itemprice_textfield.setBounds(412, 330, 109, 20);
    frame.getContentPane().add(itemprice_textfield);
    itemprice_textfield.setColumns(10);
    
    add_button = new JButton("ADD ITEM");
    add_button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {    
            String getname = itemname_textfield.getText(); // used to get the input string from user to transfer to the combo box
            comboBox.addItem(getname); // used to display the received string inputs
        }
    });
    add_button.setFont(new Font("Serif", Font.PLAIN, 13));
    add_button.setBounds(412, 361, 109, 23);
    frame.getContentPane().add(add_button);
    
    comboBox = new JComboBox();
    comboBox.setBounds(412, 479, 109, 22);
    frame.getContentPane().add(comboBox);
    
    del_button = new JButton("DELETE ITEM");
    del_button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            comboBox.removeItem(comboBox.getSelectedItem()); // used to delete the selected index in combo box.
        }
    });

    del_button.setFont(new Font("Serif", Font.PLAIN, 11));
    del_button.setBounds(412, 512, 109, 23);
    frame.getContentPane().add(del_button);
    
    itemprice_label = new JLabel("Enter Item Price:"); // label for item price
    itemprice_label.setBounds(412, 311, 109, 14);
    frame.getContentPane().add(itemprice_label); // used to display the text from label
    
    itemname_label = new JLabel("Enter Item Name:"); // label for item name
    itemname_label.setBounds(412, 249, 102, 14);
    frame.getContentPane().add(itemname_label); // used to display the text from label
    
    lblNewLabel_3 = new JLabel("OPERATION");
    lblNewLabel_3.setFont(new Font("Sitka Subheading", Font.PLAIN, 17));
    lblNewLabel_3.setBounds(419, 185, 102, 32);
    frame.getContentPane().add(lblNewLabel_3);
    String getname = itemname_textfield.getText();
    
    totalamount_label = new JLabel("TOTAL: " + amount);              // amount here
    totalamount_label.setFont(new Font("Serif", Font.PLAIN, 13));
    totalamount_label.setBounds(412, 130, 136, 20);
    frame.getContentPane().add(totalamount_label);

    bigger_itemname_label = new JLabel("ITEM NAME");
    bigger_itemname_label.setFont(new Font("Serif", Font.PLAIN, 14));
    bigger_itemname_label.setBounds(84, 190, 96, 14);
    frame.getContentPane().add(bigger_itemname_label);
    
    bigger_itemprice_label = new JLabel("PRICE");
    bigger_itemprice_label.setFont(new Font("Serif", Font.PLAIN, 14));
    bigger_itemprice_label.setBounds(245, 192, 46, 14);
    frame.getContentPane().add(bigger_itemprice_label);
    
    JScrollPane scrollPane = new JScrollPane();
    scrollPane.setBounds(39, 225, 322, 285);
    frame.getContentPane().add(scrollPane);
    
    table = new JTable();
    scrollPane.setViewportView(table);
    table.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
}
}

But I don't know how or what to do since I am new to Java GUI.

Also, please tell me if there's something weird in my code so that I can make improvement.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文