当前位置: 首页 > 知识库问答 >
问题:

JPanel可见性

鞠通
2023-03-14

当<code>JPanel</code>设置为不可见时,它是否仍然“可触摸”?在我的框架上有一个<code>JPanel</code>,面板上有按钮。如果我将面板设置为不可见,如果我按下按钮所在的位置(如果它可见),该按钮是否仍然有效?

我要求更好地理解setViable,而不是实际上试图实现上面所说的内容。

共有2个答案

方弘
2023-03-14

我不知道你是否测试过马文·裘德说的话。但对于我的示例,当其父容器不可见时,实例是不可触摸的。

    < li >使用< code > panel . set visible(true);或< code > panel . set visible(true);更改JPanel的可见性。 < li >如果< code>MainPanel不可见,则不会触发按钮的监听器。

参见下面的代码。

    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import javax.swing.*;

    public class MyFrame extends JFrame{

        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        public MyFrame(){
            MainPanel panel = new MainPanel();
            add(panel,BorderLayout.CENTER);
            setResizable(false);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setLocationRelativeTo(null);
            pack();
            panel.setVisible(true);
        }

        class MainPanel extends JPanel{

            /**
             * 
             */
            private static final long serialVersionUID = 1L;
            public MainPanel(){
                JButton button = new JButton("I am a button");
                add(button);
                button.addActionListener(new ActionListener(){

                    @Override
                    public void actionPerformed(ActionEvent arg0) {
                        // TODO Auto-generated method stub
                        System.out.println("JButton is clicked...");
                    }
                });
            }
        }

        public static void main(String args[]){
            Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    MyFrame myFrame = new MyFrame();
                    myFrame.setVisible(true);
                }
            };
            SwingUtilities.invokeLater(runnable);
        }
    }
曾景龙
2023-03-14

当它被设置为不可见时,它仍然可以工作,但是如果您不想让它执行它本来的功能,那么可以使用。启用的方法

 类似资料:
  • 我正在尝试制作一个JFrame,其中包含一个JGroup,不可见但保持JGroup可见。我怎么才能做到这一点?提前感谢!

  • 问题内容: 在设置为GridLayout的JPanel中,我彼此之间有一系列组件。我需要暂时隐藏组件,但setVisible(false) 不要剪切它们,因为组件所在的位置仍然存在空白。 有没有快速简便的方法来做到这一点?还是我必须保留 JPanel的状态,删除组件,然后还原它?the state of the JPanel, removing the components, then resto

  • 我有一个弹出类,它像弹出窗口一样扩展和收缩。它扩展了JPanel。 我已经覆盖了JPanel选择是否应该绘制弹出对象的典型可见性方法。只有当弹出窗口完全展开时,JPanel才应该可见。 我通过创建一个来设置它。然后,我将它添加到主JPanel并将其可见性设置为true。 在主JPanel的paintComponent()方法中,我调用了popup.draw(g)。 最后,当我希望它展开时,我有Po

  • 使用、或侦听和更改的可见性,是否有一些规则或好/坏的经验? 其中一个比其他的更好或更安全吗?我特别想知道/隐藏的时间和方式。 请注意,以下代码包含不正确的Swing规则,例如使用,在本例中,允许我在Swing GUI中打印出正确顺序的

  • 问题内容: 如何使JPanel可滚动?我实现了可滚动界面,但在将其添加到包含面板时 什么都行不通 码: 问题答案: 您必须使用。然后致电; 您不必实现可滚动的,JPanel已经可以滚动

  • 名为visibility的属性允许您隐藏视图中的元素。 您可以将此属性与JavaScript一起使用,以创建非常复杂的菜单和非常复杂的网页布局。 您可以选择使用visibility属性来隐藏仅在用户需要查看时显示的错误消息,或隐藏测验的答案,直到用户选择一个选项。 NOTE - 请记住,源代码仍将包含隐藏段落中的内容,因此您不应使用此代码隐藏敏感信息,如信用卡详细信息或密码。 visibility