swing更改组件(删除后添加)得到心得:起码得刷新一下啊,可能还得再考虑重绘

Posted 一乐乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swing更改组件(删除后添加)得到心得:起码得刷新一下啊,可能还得再考虑重绘相关的知识,希望对你有一定的参考价值。

swing更改组件(删除后添加)得到心得:起码得刷新一下啊,可能还得再考虑重绘

 

心得:修改无效时,考虑一下刷新宝贝,或再试试像界面层次的东西,再考虑重新绘制一下啊大宝贝

 

代码举例:

更换头像代码举例:(不刷新,不重新绘制,效果出不来,要么图片不变,要么反正就是不合心意):

ps:自己定义的几个变量的意思:pnlHeaderImage 是头像面板

headerPath 是 头像路径,方法openLocalFilePath(); 是打开文件夹或者文件,挑选自己喜欢的头像的图片文件路径

ps:刷新代码语句:pnlHeaderImage.updateUI();

  重绘代码语句:pnlHeaderImage.repaint();             

 

    /**
     * 头像添加点击事件更换头像的方法
     */
    private void headImageEvent() {
        pnlHeaderImage.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                if (e.getButton() == MouseEvent.BUTTON1) { // 点击鼠标左键
                    pnlHeaderImage.removeAll();
                    pnlHeaderImage.setOpaque(true);
                    pnlHeaderImage.repaint();
//                    pnlHeaderImage.updateUI();
                }
                headerPath = openLocalFilePath();
                lblHeaderImage = new JLabel(new ImageIcon(headerPath));
                pnlHeaderImage.add(lblHeaderImage);
                pnlHeaderImage.setOpaque(false);
                pnlHeaderImage.updateUI();
            }
            
        });    
    }

 

ps:方法openLocalFilePath(); 是打开文件夹或者文件,挑选自己喜欢的头像的图片文件路径的代码:

    /**
     * 打开文件夹的路径
     * @return
     */
    public String openLocalFilePath() {
        JFileChooser fileChooser = new JFileChooser(".");
        fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
        int value = fileChooser.showDialog(fileChooser, "选择");
        File getPath = null;
         if (value == JFileChooser.APPROVE_OPTION) {
                getPath = fileChooser.getSelectedFile();
         }
        return getPath.getAbsolutePath();
    }

 

以上是关于swing更改组件(删除后添加)得到心得:起码得刷新一下啊,可能还得再考虑重绘的主要内容,如果未能解决你的问题,请参考以下文章

201671010107 2016-2017-2 《Java程序设计》第十章学习心得

将组件添加到组件时可能会出现啥问题

java swing 中的列表框JList如何在程序中动态的添加和删除元素

201671010118 2016-2017-2《Java程序设计》 第十三周学习心得

关于Swing中JFrame或JPanel重写paint()方法后再在JFrame或JPanel中添加其他组件出现按钮等组件消失不见只有当鼠标扫过时才会出现的问题

201671010138 2016-2017-2《java程序设计》学习心得