0

新しいコントロールを動的に作成し、マウスで移動できるJavaプログラムを作成しようとしています。今は移動できますが、新しいオブジェクトを作成すると、すべてのオブジェクトが最初の位置に戻ります。理由は明らかです-メインフレームで pack() メソッドを使用していますが、それ以外の方法はわかりません。

説明:

  • myPanel - JPanel を拡張するクラス
  • PanelList - 生成されたパネルを含む ArrayList
  • addmyPanel - 新しいパネルを PanelList に追加するメソッド
  • getmyPanel - 特定の ID を持つ myPanel を返します

    private void jButton0ActionActionPerformed(ActionEvent event) {
        myPanel temp = new myPanel();
        addmyPanel();
        for (int i =0 ;i < PanelList.size(); i++){
            temp = PanelList.get(i);
            if (!temp.getIsActive()){
                try{
                    add(getmyPanel(temp.getId()), new Constraints(new Leading(35, 100, 10, 10), new Leading(44, 100, 12, 12)));
                    PanelList.get(i).setIsActive();
                }
                catch (NoSuchElementException e){}
            }
        }
        frame.pack();
    }
    
4

1 に答える 1

1

ドラッグ レイアウトを確認してください。レイアウト マネージャーが呼び出されたときに、場所はリセットされません。

于 2013-05-29T15:02:53.590 に答える