Nutsh 2011-03-19 16:42
浏览 444
已采纳

关于swing,隐藏显示部分面板,动态显示整个窗体大小的大小

想要这样的效果
[img]http://dl.iteye.com/upload/attachment/440779/d7a98e07-be54-3a5f-bf61-3aa62293acaf.png[/img]

[img]http://dl.iteye.com/upload/attachment/440805/628c995e-df78-33ee-a0b5-9fe257736b6b.png[/img]

点击detail按钮,动态显示局部面板,并更改整个窗体的大小.

我是给局部panel用setVisable()来控制动态显示.
然后用this.pack()来动态适应大小.
不过貌似,显示或不显示,大小总在那儿...

请各位了支招....谢谢...

  • 写回答

2条回答 默认 最新

  • changchanghust 2011-03-19 21:44
    关注

    我写了个简单的例子,感觉是可以正常的缩放的呢

    [code="java"]public class FrameTest implements ActionListener {
    private JPanel northPanel = new JPanel();
    private JPanel centerPanel = new JPanel();
    private JFrame frame = new JFrame("Test");

    public FrameTest() {
        init();
    }
    
    private void init() {
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(new BorderLayout());
    
        JTextField tf = new JTextField();
    
        JButton btn = new JButton("Detail...");
        btn.addActionListener(this);
    
        northPanel.add(new JLabel("aaaaaaaaaaaaaaaaaaaaaaaaaaaaa"));
        centerPanel.add(new JLabel("bbbbbbbbbbbbbbbbbbbbbbbbbbbb"));
        centerPanel.setVisible(false);
        frame.add(BorderLayout.NORTH, northPanel);
        frame.add(BorderLayout.CENTER, centerPanel);
        frame.add(BorderLayout.SOUTH, btn);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
        centerPanel.setVisible(!centerPanel.isVisible());
        frame.pack();
    }
    
    public static void main(String[] args) {
        new FrameTest();
    }
    

    }[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?