ABCHERRY7 2017-10-24 08:41 采纳率: 0%
浏览 2426

java Swing自定义按钮,最大化到最小化,回来图标就不见了?

java Swing自定义按钮,最大化到最小化,回来图标就不见了?
程序运行,单独点击最大化,最小化没有任何问题,但是如果先点了最大化,再点最小化
再从任务栏点回来,图标就不见了。
//最小化功能
public void minFunction(JLabel min){
min.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
min.setIcon(new ImageIcon(hover_min));
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
min.setIcon(new ImageIcon(default_min));
}
@Override
public void mouseClicked(MouseEvent e) {

            realizeMin();

        }
    });
}
//最大化功能
public void maxFunction(JLabel max){
    max.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseEntered(MouseEvent e) {
            // TODO Auto-generated method stub
            max.setIcon(new ImageIcon(hover_max));
        }
        @Override
        public void mouseExited(MouseEvent e) {
            // TODO Auto-generated method stub
            max.setIcon(new ImageIcon(default_max));
        }
        @Override
        public void mouseClicked(MouseEvent e) {
            realizeMax();
            maxFace();
            if(getjFrameState() == 1){
                realizeMax();
                maxFace();
            }else if(getjFrameState() == 2){
                realizeNormal();//点击按钮实现最大化
                normalFace();
            }
        }
    });
}   
//获取窗口状态
int jFrameState;
public int getjFrameState(){
            jFrame.addWindowStateListener(new WindowStateListener() {
            @Override
            public void windowStateChanged(WindowEvent state) {
                // TODO Auto-generated method stub
                if(state.getNewState() == JFrame.NORMAL) {
                    jFrameState = 1;//新窗口正常化
                }else if(state.getNewState() == JFrame.MAXIMIZED_BOTH) {
                    jFrameState = 2;//新窗口最大化
                }else if(state.getNewState() == JFrame.ICONIFIED) {
                    jFrameState = 3;//新窗口最小化
                }else if(state.getOldState() == JFrame.MAXIMIZED_BOTH) {
                    jFrameState = 4;//旧窗口最大化
                }else if(state.getOldState() == JFrame.ICONIFIED) {
                    jFrameState = 5;//旧窗口最小化
                }else if(state.getOldState() == JFrame.NORMAL){
                    jFrameState = 6;//旧窗口正常化
                }
            }
        });
        return jFrameState;
    }
  • 写回答

1条回答 默认 最新

  • devmiao 2017-10-24 12:44
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧