sky_xin 2015-08-24 11:49 采纳率: 50%
浏览 2779
已采纳

在JFrame中使用JSplitPane进行分栏后需要手动拖动一下窗体大小才能显示内容

初始化执行后如图1图片说明

拖动之后如图2图片说明

为什么不能初始化显示成图2的样子
代码如下:
package com.yeeda.pollyover;

import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSplitPane;

public class PollyoverFrame extends JFrame{

static final int WIDTH=1000;
static final int HEIGHT=800;
JPanel jpanelMain = new JPanel();

PollyoverFrame(){
    super("测试");
    setSize(WIDTH,HEIGHT);

    //激活窗体的关闭按钮
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //设置窗体的初始化位置(屏幕中央)
    Toolkit kit=Toolkit.getDefaultToolkit();
    Dimension screenSize=kit.getScreenSize();
    int width=screenSize.width;
    int height=screenSize.height;
    int x=(width-WIDTH)/2;
    int y=(height-HEIGHT)/2;
    setLocation(x,y);
    setVisible(true);  
    //setResizable(false);

    //设置窗体分割
    final JSplitPane hSplitPane = new JSplitPane();
    JPanel leftPanel = new LeftPanel();
    JPanel mainPanel = new MainPanel();
    hSplitPane.setLeftComponent(leftPanel);
    hSplitPane.setRightComponent(mainPanel);
    hSplitPane.setDividerLocation(200);
    hSplitPane.setOneTouchExpandable(false);
    getContentPane().add(hSplitPane);
}

public static void main(String[] args) {
    PollyoverFrame pollyoverFrame = new PollyoverFrame();
}

}

package com.yeeda.pollyover;

import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class LeftPanel extends JPanel {
LeftPanel() {

    //获取图片并设置图片的大小
    ImageIcon image = new ImageIcon(
            LeftPanel.class.getResource("butterfly.jpg"));
    image.setImage(image.getImage().getScaledInstance(40, 40,
            Image.SCALE_DEFAULT));
    //将图片添加到JLabel
    JLabel picLabel = new JLabel(image);
    JLabel picLabel2 = new JLabel("测试");
    add(picLabel);
    add(picLabel2);

}

}

package com.yeeda.pollyover;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MainPanel extends JPanel {
MainPanel(){
JButton ok=new JButton("搭配");
JButton cancel=new JButton("混搭");
add(ok);
add(cancel);
}
}

  • 写回答

1条回答 默认 最新

  • sky_xin 2015-08-24 12:33
    关注

    解决方案:
    //在这里添加
    pollyoverFrame.setVisible(true);

    public static void main(String[] args) {
    PollyoverFrame pollyoverFrame = new PollyoverFrame();
    //在这里添加
    pollyoverFrame.setVisible(true);
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?