求助!!!swing 中控件随着 窗口大小改变而改变 问题

zemel 2011-01-20 05:40:42



大家看看 swing中控件随着窗口大小改变而改变,这个不能。。。
是不是布局管理器的问题
大家知道BoxLayout会随着窗口自动改变吗?
...全文
1394 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gongfuliang 2011-01-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 a775901421 的回复:]
引用 2 楼 stonefeng 的回复:
看你的截图,觉得数据源配置器面板加入JSplitPane的方式可能有问题,否则他是可以随窗口改变大小的。



我也感觉是这个问题,您估计是什么错误,引起上面的样子,或者是没有加什么?
[/Quote]

JSplitPane.setRight...(new JScrollPane(panel))
gongfuliang 2011-01-21
  • 打赏
  • 举报
回复
cp.add(sp);
cp.setPreferredSize(new Dimension(200, 200));

问题在这。

没必要又把ScrollPane添加到Panel中吧?
sunyiz 2011-01-21
  • 打赏
  • 举报
回复
从楼主给的图里面可以看出几个问题
楼主的“数据源配置器”这个面板本意应该是要用一个JScrollPane来包住一个比较大的面板

但是从这个界面的现象上,我只能推测出:
可能是有一个被设置了null布局的面板上面添加了一个被设置了固定大小的面板
“数据源配置器”就是这个被设置了固定大小的面板,它被加到了一个设定了null布局的面板上
楼主看一下你的设置了标题边框“数据源配置器”的那个面板是add到了什么地方
zemel 2011-01-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 stonefeng 的回复:]
看你的截图,觉得数据源配置器面板加入JSplitPane的方式可能有问题,否则他是可以随窗口改变大小的。
[/Quote]


我也感觉是这个问题,您估计是什么错误,引起上面的样子,或者是没有加什么?
zemel 2011-01-20
  • 打赏
  • 举报
回复
贴给你啦
我assignment超大一个 琢磨scrollpane只不过是其中一项痛苦
个人觉得是swing JSrollPane有问题啦 sun德tutorial里的例子都是不太work的 我只不过是找出一个折衷的办法,让scollbar一定要show出来

我贴的是我总结出来的最简单的保证scroll得出来的例子
JPanel d就是你要加其他组件的panel

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;

public class TestScroll extends JFrame
{
private JPanel d;
private JScrollPane sp;

public TestScroll()
{
this.setTitle( "test!! ");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);

JPanel cp = new JPanel();
cp.setBackground(Color.BLACK);
cp.setLayout(new BorderLayout());

this.d = new JPanel();
d.setBackground(Color.WHITE);

this.sp = new JScrollPane(d);
cp.add(sp);
cp.setPreferredSize(new Dimension(200, 200));
this.setContentPane(cp);

this.pack();
this.setVisible(true);
this.scroll();
}

public void scroll()
{
d.setPreferredSize(new Dimension(500, 500));
d.revalidate();
this.pack();
this.setVisible(true);
}

public static void main(String[] argv)
{
TestScroll t = new TestScroll();
}

}

================================================
d.setPreferredSize(new Dimension(500, 500));
d.revalidate();
this.pack();
this.setVisible(true);
================================================
疯癫行者 2011-01-20
  • 打赏
  • 举报
回复
看你的截图,觉得数据源配置器面板加入JSplitPane的方式可能有问题,否则他是可以随窗口改变大小的。
铁匠梁老师 2011-01-20
  • 打赏
  • 举报
回复
知道
GridBagLayout
满足需求

62,630

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧