1

私はいくつかのコードを持っています:

button.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            JFrame mainFrame = new JFrame();
            JPanel windowPanel = new JPanel(new FlowLayout());
//          windowPanel.setPreferredSize(new Dimension(200,200));
            windowPanel.add(colorChooser);
            windowPanel.add(button);
            windowPanel.setVisible(true);
            mainFrame.add(windowPanel);
        }
    });

問題はFlowLayout、ボタンをクリックした後に(新しいウィンドウに)新しいものを表示する方法ですか?

4

2 に答える 2

2

windowPanel.setVisible(true);とを交換することから始めますmainFrame.add(windowPanel);

mainFrame.add(windowPanel);
windowPanel.setVisible(true);

mainFrame.pack()呼び出しの前に追加してsetVisibleも害はありません。

The Use of Multiple JFrames: Good or Bad Practice? をご覧になることをお勧めします。ただし、特定の設計に専念する前に。

于 2013-10-09T08:25:17.150 に答える
0
        public void actionPerformed(ActionEvent e) {
            frame2 = new JFrame("Meine Frame");
            frame2.setSize(500,400);
            frame2.setLocationRelativeTo(null);
            JPanel windowPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
            windowPanel.add(okButton);

            okButton.addActionListener(new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent e) {
                    color = colorChooser.getColor();
                    System.out.println("The selected color was:" + color);
                    panel.setBackground(color);
                    frame2.dispose();

                }
            });{

            };
            windowPanel.add(colorChooser);

            windowPanel.setVisible(true);
            frame2.add(windowPanel);
            frame2.setVisible(true);

        }

このようにして私は私の問題を解決しました。

于 2013-10-10T08:32:49.583 に答える