您好我想在{-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);
}
`
答案 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
问题在于width
和height
。手动分配它们会在不同分辨率的屏幕上为您的应用程序提供不一致的外观。 LayoutManager
将为您处理所有这些事情。