为库存管理项目创建开票页面。 Java的

时间:2013-10-24 16:36:04

标签: java swing

您好我想在{-3}}中创建一个结算页面作为我的迷你项目的一部分。我尝试使用setBounds创建它。但我没有得到理想的页面。任何人都可以帮我这样做吗?

package start;

     void makeandshowGUI()
    {
        billno=new JTextField(15);
        dd=new JTextField(2);
        mm=new JTextField(2);
        yy=new JTextField(2);
        itemcode=new JTextField(5);
        itemname=new JTextField(50);
        qty=new JTextField(3);
        cname=new JTextField(50);
        wlcm=new JLabel("Product Billing @ BillDesk");
        ptotal=new JLabel("");
        billn=new JLabel("Bill No.:");
        billdate=new JLabel("Bill Date");
        cusname=new JLabel("Customer Name");
        pid=new JLabel("Product ID:");
         slash1=new JLabel("/");
         slash2=new JLabel("/");
        pname=new JLabel("Product Name:");
        pqty=new JLabel("Qty:");
        total=new JLabel("Total:");
        billd=new JLabel("Billing Details");
        purchased=new JLabel("Purchase Details");
        ftotal=new JLabel("Total:");
        disc=new JLabel("Discount:");
        gtotal=new JLabel("Grand Total:");
        save=new JButton("Save Bill & Print");
        view=new JButton("View Bill");
        list=new JButton("..");
        String[] columnNames = {"Sl. No.",
                                "Product ID",
                                "Product Name",
                                "Qty",
                                "Rate","Price"};


        JFrame bill=new JFrame("Product Billing || BillDesk");
        bill.setSize(1000,5000);
        bill.setBackground(Color.white);
        bill.setVisible(true);
        bill.setResizable(false);
        bill.setMinimumSize(new Dimension(1000, 1000));
        DefaultTableModel model = new DefaultTableModel(columnNames,10);
        JTable billTable=new JTable(model)
        {@Override
        public boolean isCellEditable(int arg0, int arg1) {

            return false;
        }};
        JScrollPane pane = new JScrollPane(billTable);
        Container c=bill.getContentPane();
        bill.setLayout(null);
        wlcm.setBounds(500, 0, 200, 20);
        billn.setBounds(0, 100, 100, 25);
        billno.setBounds(52,100,100,25);
        billdate.setBounds(700, 100, 100, 25);
        dd.setBounds(751, 100,20, 25);
        slash1.setBounds(772,100,5,25);
        mm.setBounds(777, 100,20, 25);
        slash2.setBounds(810,100,5,25);
        yy.setBounds(813, 100,20, 25);
        cusname.setBounds(0, 130, 50, 25);
        cname.setBounds(55, 130, 50, 25);
        pid.setBounds(0, 200, 50, 25);
        itemcode.setBounds(55, 200, 30, 25);
        pname.setBounds(100, 200, 50,25);
        itemname.setBounds(125, 200, 50,25);
        list.setBounds(206, 200, 5, 25);
        pqty.setBounds(215, 200, 25, 25);
        qty.setBounds(145, 200, 25, 25);
        total.setBounds(175, 200, 25, 25);
        ptotal.setBounds(205, 200, 50, 50); 
        c.add(wlcm,FlowLayout.LEADING);
        c.add(billn);
        c.add(billdate);
        c.add(cusname);
        c.add(pid);
        c.add(pname);
        c.add(pqty);
        c.add(slash1);
        c.add(slash2);
        c.add(ptotal);
        c.add(billno);
        c.add(dd);
        c.add(mm);
        c.add(yy);
        c.add(cname);
        c.add(cusname);
        c.add(itemcode);
        c.add(itemname);
        c.add(list);
        c.add(qty);
        c.add(total);
        c.add(ptotal);

 }
`

1 个答案:

答案 0 :(得分:1)

为什么要手动尝试安排一切?您应该考虑使用LayoutManager来为您处理任务。

具有嵌套能力的

JComponents非常强大,允许您创建非常简洁的UI,而无需担心手动定位它们。嵌套JComponent中的每一个,例如JPanel都可以与其关联LayoutManager

此外,setBounds()中的4个参数是:

x - the new x-coordinate of this component
y - the new y-coordinate of this component
width - the new width of this component
height - the new height of this component  

问题在于widthheight。手动分配它们会在不同分辨率的屏幕上为您的应用程序提供不一致的外观。 LayoutManager将为您处理所有这些事情。