首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提出这个涉及列表组件的JAVA应用程序?

如何提出这个涉及列表组件的JAVA应用程序?
EN

Stack Overflow用户
提问于 2014-02-01 02:18:26
回答 1查看 1.2K关注 0票数 0

我自己正在学习Java,为了好玩,我独自承担非常小的项目,而我只是被困在这个项目的这一小部分上。因此,我创建了一个文本文件,其中包含了一个小的玩具名称和价格列表,例如:

芭比,12.95乐高,15.99轮,5.00电动游侠,6.49

我想要的是我的应用程序读取文件的内容并将玩具名称存储在列表组件中。然后,我希望能够从列表中选择一个玩具名称,并将其添加到购物车中,这也是一个列表组件。我希望应用程序有菜单项和按钮,允许我从购物车中删除项目,清除购物车的所有选择,并结帐。当我退房时,应用程序应该计算并显示购物车中所有玩具名称的小计、销售税(只占小计的8%)和总额。

请帮助创建这个简单的应用程序示例,我将自己添加并使用这个示例来创建一个更大的应用程序。我真的很感激。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-02-01 03:21:19

我帮助您创建了所有涉及到的GUI组件,我认为这些组件是应用程序中最乏味的部分,除非您有Netbeans,在那里您可以轻松地使用它们的GUI编辑器创建JFrame表单。另外,使用组合框的列表将更适合您选择不同的玩具,因为它是动态调整大小的,即使您有数百个不同的玩具,也不会对您的GUI造成问题。

你现在要做的就是:

  1. 创建要在文本中读取的BufferedReader
  2. 使用String ()方法拆分CSV,并将文本解析为两个单独的数组--一个表示玩具的名称,另一个用于其值
  3. 更新toysComboBox以显示文本文件中的输入
  4. 更新addToCartButton以更新shoppingCartTable以显示第一列下的项目名称和第二列中的成本
  5. 更新addToCartButton以重新计算shoppingCartTable中的所有成本,然后更新subtotalValueLabel、salesTaxValueLabel和totalValueLabel
  6. 更新clearCartButton以将整个shoppingCartTable设置为"",并将subtotalValueLabel、salesTaxValueLabel和totalValueLabel设置为$0.00
  7. 更新removeSelectedItem以删除shoppingCartTable中选定的行,然后将删除行下面的所有值向上推高以填补空白,然后重新计算shoppingCartTable中的所有成本,然后更新subtotalValueLabel、salesTaxValueLabel和totalValueLabel
  8. 在你按下checkOutButton键后让事情发生--这完全取决于你

希望你从中学到一些东西,并为你的项目尽最大的努力!

代码:

代码语言:javascript
复制
package test; // Rename with your package name

public class JavaProject extends javax.swing.JFrame { //Replace class name with yours


    public JavaProject() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    private void initComponents() {

        toysComboBox = new javax.swing.JComboBox();
        addToyLabel = new javax.swing.JLabel();
        addToCartButton = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        shoppingCartTable = new javax.swing.JTable();
        shoppingCartLabel = new javax.swing.JLabel();
        subtotalLabel = new javax.swing.JLabel();
        subtotalValueLabel = new javax.swing.JLabel();
        salesTaxLabel = new javax.swing.JLabel();
        salesTaxValueLabel = new javax.swing.JLabel();
        totalLabel = new javax.swing.JLabel();
        totalValueLabel = new javax.swing.JLabel();
        checkOutButton = new javax.swing.JButton();
        removeSelectedButton = new javax.swing.JButton();
        toyStoreLabel = new javax.swing.JLabel();
        clearCartButton = new javax.swing.JButton();
        splitLabel = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        toysComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Barbie - $12.95", "Lego - $15.99", "Hot Wheels - $5.00", "Power Rangers - $6.49" }));
        toysComboBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                toysComboBoxActionPerformed(evt);
            }
        });

        addToyLabel.setText("Add Toy:");

        addToCartButton.setText("Add to Cart");

        shoppingCartTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Item", "Cost"
            }
        ));
        jScrollPane1.setViewportView(shoppingCartTable);

        shoppingCartLabel.setText("Shopping Cart");

        subtotalLabel.setText("Subtotal:");

        subtotalValueLabel.setText("$0.00");

        salesTaxLabel.setText("Sales Tax:");

        salesTaxValueLabel.setText("$0.00");

        totalLabel.setFont(new java.awt.Font("Lucida Grande", 0, 18)); // NOI18N
        totalLabel.setText("Total:");

        totalValueLabel.setFont(new java.awt.Font("Lucida Grande", 0, 18)); // NOI18N
        totalValueLabel.setText("$0.00");

        checkOutButton.setText("Check Out");
        checkOutButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                checkOutButtonActionPerformed(evt);
            }
        });

        removeSelectedButton.setText("Remove Selected Item");

        toyStoreLabel.setFont(new java.awt.Font("Lucida Grande", 0, 24)); // NOI18N
        toyStoreLabel.setText("Toy Store");

        clearCartButton.setText("Clear Cart");

        splitLabel.setText("_____________________");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap(14, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(addToyLabel)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(toysComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 193, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(addToCartButton, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(layout.createSequentialGroup()
                                        .addGap(58, 58, 58)
                                        .addComponent(toyStoreLabel))))
                            .addComponent(shoppingCartLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 362, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGroup(layout.createSequentialGroup()
                                    .addComponent(clearCartButton)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(removeSelectedButton))
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                                        .addComponent(salesTaxLabel)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(salesTaxValueLabel)
                                        .addGap(257, 257, 257))
                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addGroup(layout.createSequentialGroup()
                                            .addComponent(subtotalLabel)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                            .addComponent(subtotalValueLabel))
                                        .addGroup(layout.createSequentialGroup()
                                            .addComponent(totalLabel)
                                            .addGap(18, 18, 18)
                                            .addComponent(totalValueLabel))))))
                        .addContainerGap(12, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(splitLabel)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(checkOutButton, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(30, 30, 30))))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(9, 9, 9)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(checkOutButton, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(toyStoreLabel)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(addToyLabel)
                            .addComponent(toysComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(addToCartButton, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addComponent(shoppingCartLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(removeSelectedButton)
                            .addComponent(clearCartButton))
                        .addGap(27, 27, 27)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(subtotalLabel)
                            .addComponent(subtotalValueLabel))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(salesTaxLabel)
                            .addComponent(salesTaxValueLabel))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(splitLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 16, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(totalLabel)
                            .addComponent(totalValueLabel))))
                .addContainerGap(41, Short.MAX_VALUE))
        );

        pack();
    }                      

    private void toysComboBoxActionPerformed(java.awt.event.ActionEvent evt) {                                             
        // TODO add your handling code here:
    }                                            

    private void checkOutButtonActionPerformed(java.awt.event.ActionEvent evt) {                                               
        // TODO add your handling code here:
    }                                              

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {

        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(JavaProject.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(JavaProject.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(JavaProject.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(JavaProject.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new JavaProject().setVisible(true);
            }
        });
    }

    private javax.swing.JButton addToCartButton;
    private javax.swing.JLabel addToyLabel;
    private javax.swing.JButton checkOutButton;
    private javax.swing.JButton clearCartButton;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JButton removeSelectedButton;
    private javax.swing.JLabel salesTaxLabel;
    private javax.swing.JLabel salesTaxValueLabel;
    private javax.swing.JLabel shoppingCartLabel;
    private javax.swing.JTable shoppingCartTable;
    private javax.swing.JLabel splitLabel;
    private javax.swing.JLabel subtotalLabel;
    private javax.swing.JLabel subtotalValueLabel;
    private javax.swing.JLabel totalLabel;
    private javax.swing.JLabel totalValueLabel;
    private javax.swing.JLabel toyStoreLabel;
    private javax.swing.JComboBox toysComboBox;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21493362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档