0

私の在庫管理システムでは、プログラムが 1 回のクリックで 2 つの入力フォームを作成します。問題を特定できません。

実行されたメニュー アクションのコード

public void actionPerformed(ActionEvent e) 
{
    JMenuItem source = (JMenuItem)(e.getSource());
    String s=e.getActionCommand();

    if(s.equals("Stock Entry"))
    {
      Store.Stock_Entry.Stock();

    }
   else if(s.equals("Stock Update"))
    {
      Store.Stock_Update.Stock();

    }
}

ユーザーがメニューで在庫入力オプションをクリックすると、在庫入力用の2つのフォームが作成されます。

株式登録区分のコード

 public void MakeGUI(JFrame f)
 {
    Cframe=f;
    l1=new JLabel("STOCK ENTRY FORM");
    l2=new JLabel("Product ID:");
    l3=new JLabel("Product Name");
    l4=new JLabel("Quantity");
    l5=new JLabel("Unit Price");       
    b1=new JButton("Add Product To Stock");
    t1=new JTextField(20);
    t2=new JTextField(20);
    t3=new JTextField(20);
    t4=new JTextField(20);
    Container c=f.getContentPane();
    c.setLayout(null);
    c.setBackground(Color.PINK);
    f.setSize(600,600);
    f.setResizable(false);
    f.setVisible(true);
    c.add(l1);
    c.add(l2);
    c.add(l3);
    c.add(l4);
    c.add(l5);
    c.add(b1);
    c.add(t1);
    c.add(t2);
    c.add(t3);
    c.add(t4);
    t4.setBounds(300,300,200,25);
    t3.setBounds(300,250,200,25);
    t2.setBounds(300,200,200,25);
    t1.setBounds(300,150,200,25);
    l5.setBounds(100,300,200,25);
    l4.setBounds(100,250,200,25);
    l3.setBounds(100,200,200,25);
    l2.setBounds(100,150,200,25);
    b1.setBounds(250,450,200,25);
    l1.setBounds(200,100,200,25);
    b1.addActionListener(this);


}
public void actionPerformed(ActionEvent be)
{
     proid=t1.getText();
     proname=t2.getText();
     proqty=t3.getText();
     prorate=t4.getText();
     prodid=Integer.parseInt(proid);
     productrate = Integer.parseInt(prorate);
     productqty= Integer.parseInt(proqty);
     cost=productrate*productqty;


   con=getUserConnect();

}

public class Stock_Entry
{ 

   public static void Stock()
   {
      Entry en=new  Entry();
  JFrame frame = new JFrame("Menu");
  en.MakeGUI(frame); 
   }
}

問題を特定できません。同じコードが更新セクションで使用され、完全に機能します。

4

1 に答える 1

0

おそらく偶然に ActionListener2回追加したと思いますが、次のコードを追加して確認できます。JButton

//Add this Line
System.out.println("INSIDE STOCK ENTRY ACTIONLISTENER)
if(s.equals("Stock Entry"))
{
  Store.Stock_Entry.Stock();

}
else if(s.equals("Stock Update"))
{
  Store.Stock_Update.Stock();

}

次に、プログラムを再度実行して、出力を確認します。「INSIDE STOCK ENTRY ACTIONLISTENER」が 2 回表示される場合は、誤ってActionListener2 回を同じ に追加したに違いありませんJButton。更新が正常に見える理由は、何かを 2 回更新/更新しても同じままで、見分けることができないためです。

于 2013-10-29T18:33:20.810 に答える