在JFrame中使用JSplitPane进行分栏后需要手动拖动一下窗体大小才能显示内容
为什么不能初始化显示成图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);
}
}
解决方案:
//在这里添加
pollyoverFrame.setVisible(true);
public static void main(String[] args) {
PollyoverFrame pollyoverFrame = new PollyoverFrame();
//在这里添加
pollyoverFrame.setVisible(true);
}