java swing setVisible放置顺序不同导致显示效果不同

查看:155
本文介绍了java swing setVisible放置顺序不同导致显示效果不同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

问题就是在不同地方使用setVisible最终效果不同,下面有代码和效果图

package mvc;

import javax.swing.JFrame;
import javax.swing.*;
import java.awt.*;

/**
 * Created by Smith on 2016/10/15.
 */
public class MvcTest {
    static final int WIDTH = 500;
    static final int HEIGHT = 600;

    public static void main(String[] args)
    {
        JFrame jf = new JFrame("Hello");
        jf.setSize(WIDTH,HEIGHT);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setVisible(true);
        JPanel jp = new JPanel();
        jf.setContentPane(jp);
        JButton btn1 = new JButton("WEST");
        BorderLayout lay = new BorderLayout();
        jf.setLayout(lay);
        jp.add(btn1,"West");
        //jf.setVisible(true);
    }
}

生成效果:

接下来是正常结果的代码

package mvc;

import javax.swing.JFrame;
import javax.swing.*;
import java.awt.*;

/**
 * Created by Smith on 2016/10/15.
 */
public class MvcTest {
    static final int WIDTH = 500;
    static final int HEIGHT = 600;

    public static void main(String[] args)
    {
        JFrame jf = new JFrame("Hello");
        jf.setSize(WIDTH,HEIGHT);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //jf.setVisible(true);
        JPanel jp = new JPanel();
        jf.setContentPane(jp);
        JButton btn1 = new JButton("WEST");
        BorderLayout lay = new BorderLayout();
        jf.setLayout(lay);
        jp.add(btn1,"West");
        jf.setVisible(true);
    }
}

解决方案

理解为刷新,增加某个模块后setVisible就是展示的最新效果

这篇关于java swing setVisible放置顺序不同导致显示效果不同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆