永发信息网

分隔线 JSplit

答案:1  悬赏:0  手机版
解决时间 2021-07-21 22:08
  • 提问者网友:却不属于对方
  • 2021-07-21 03:40

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

public class JSplitPane1
{
public JSplitPane1()
{
JFrame f = new JFrame("JSplitPaneDemo");
Container contentPane = f.getContentPane();
JLabel label1 = new JLabel("Label 1",JLabel.CENTER);
label1.setBackground(Color.green);
label1.setOpaque(true);
JLabel label2 = new JLabel("Label 2",JLabel.CENTER);
label2.setBackground(Color.pink);
label2.setOpaque(true);
JLabel label3 = new JLabel("Label 3",JLabel.CENTER);
label3.setBackground(Color.yellow);
label3.setOpaque(true);
JLabel label4 = new JLabel("Label 4",JLabel.CENTER);
label4.setBackground(Color.blue);
label4.setOpaque(true);
JSplitPane splitPane1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false,label1,label2);

splitPane1.setDividerLocation(0.3); // 这个 位置 很关键 的
splitPane1.setOneTouchExpandable(true);
splitPane1.setDividerSize(10);

JSplitPane splitPane2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false,splitPane1,label3);
splitPane2.setDividerLocation(0.2);
splitPane2.setOneTouchExpandable(true);
splitPane2.setDividerSize(5);

JSplitPane splitPane3 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false,splitPane1,label4);
splitPane3.setDividerLocation(35);
splitPane3.setOneTouchExpandable(true);
splitPane3.setDividerSize(5);
contentPane.add(splitPane3);

f.setSize(250,200);
f.show();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}

public static void main(String[] arg)
{
new JSplitPane1();
}
}

为什么无法显示 第二个 分隔线

最佳答案
  • 五星知识达人网友:梦中风几里
  • 2021-07-21 04:14

你是要这个效果?




首先指出你的错误:


JSplitPane splitPane3 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false, splitPane2, label4);


这里你的是splitPane1;所以splitPane2你没有用上。可能是你马虎了...。


-----


然后:


splitPane3.setDividerLocation(35);


里面是35? 貌似只能是0—1吧~~~


改为splitPane3.setDividerLocation(0.5);


效果出来如上图,这才是你要的效果吧!

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯