第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

JPanel 被添加到其他 Jpanel on togglebutton Click

JPanel 被添加到其他 Jpanel on togglebutton Click

慕桂英4014372 2023-05-10 14:20:47
我正在嘗試制作一個(gè)在 JToggleButton 的幫助下激活的彈出面板。我希望在選擇 ToggleButton 時(shí)將 JPanel 添加到另一個(gè) Jpanel 上,并在取消選擇 ToggleButton 時(shí)隱藏它。我已經(jīng)聲明了 JToggleButton 并使用了 ItemListener。但是發(fā)生的事情是,當(dāng)我選擇 ToggleButton 時(shí),如果我取消選擇并再次選擇它,則會(huì)創(chuàng)建一個(gè)面板,然后再次添加另一個(gè) JPanel,依此類推,點(diǎn)擊 5 次后,什么也沒(méi)有出現(xiàn)。public static JPanel createDesignButtons(){    designButtonsPanel.setOpaque(false);    BoxLayout boxLayout = new BoxLayout(designButtonsPanel, BoxLayout.LINE_AXIS);    designButtonsPanel.setLayout(boxLayout);    mainButton.setIcon(Icons.venueIcon);    mainButton.setBorderPainted(false);    mainButton.setPreferredSize(new Dimension(40,40));    mainButton.addItemListener(new ItemListener() {    public void itemStateChanged(ItemEvent ev) {        if(ev.getStateChange()==ItemEvent.SELECTED){        designButtonsPanel.add(createButtonsDialog());        designButtonsPanel.validate();        } else if(ev.getStateChange()==ItemEvent.DESELECTED){        System.out.println("button is not selected");        }    }});    designButtonsPanel.add(mainButton);    JLabel padding = new JLabel(" ");    padding.setPreferredSize(null);    JLabel divider = new JLabel("", Icons.dividerIcon, JLabel.CENTER);    divider.setPreferredSize(new Dimension(3,45));    designButtonsPanel.add(divider);    SwingUtilities.updateComponentTreeUI(designButtonsPanel);    return(designButtonsPanel);}上面的代碼顯示 mainButton 是我想要操作的切換按鈕,而 DesignButtonPanel 是父面板。public static JPanel createButtonsDialog(){    JPanel buttonsPanel = new JPanel();    buttonsPanel.setBorder(new LineBorder(Color.gray,1));    return buttonsPanel;}此類顯示我想添加到父面板的面板如何在選擇 JtoggleButton 時(shí)僅添加一次面板并在取消選擇時(shí)隱藏面板?
查看完整描述

1 回答

?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊

問(wèn)題是您不斷創(chuàng)建JPanel. remove如果JPanel您JToggleButton未被選中,您可以添加一個(gè)已創(chuàng)建的實(shí)例JPanel,如果按鈕被選中??催@個(gè)簡(jiǎn)單的例子:


public class MainFrame extends JFrame {


private JPanel topPanel = new JPanel();

private JPanel centerPanel = new JPanel();

private JToggleButton toggleButton = new JToggleButton("Toggle");


public MainFrame() {

    this.setVisible(true);

    this.setDefaultCloseOperation(EXIT_ON_CLOSE);

    this.setLayout(new BorderLayout());


    this.topPanel.setPreferredSize(new Dimension(100, 100));

    this.centerPanel.setPreferredSize(new Dimension(100, 100));

    this.toggleButton.setPreferredSize(new Dimension(100, 100));


    this.add(topPanel, BorderLayout.NORTH);

    this.add(centerPanel, BorderLayout.CENTER);

    this.add(toggleButton, BorderLayout.SOUTH);


    this.toggleButton.addItemListener(new ItemListener() {

        @Override

        public void itemStateChanged(ItemEvent e) {

            if(e.getStateChange() == ItemEvent.SELECTED) {

                add(centerPanel, BorderLayout.CENTER);

            } else {

                remove(centerPanel);

            }

            pack();

        }

    });


    this.pack();

    this.setVisible(true);

}

}

你可以看到它只centerPanel被實(shí)例化了一次。


查看完整回答
反對(duì) 回復(fù) 2023-05-10
  • 1 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)