首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于BorderLayout布局管理器的奇怪有关问题

2012-09-03 
关于BorderLayout布局管理器的奇怪问题情况是这样的,在初始化阶段,为JFrame的WEST和NORTH分别添加了菜单栏

关于BorderLayout布局管理器的奇怪问题
情况是这样的,在初始化阶段,为JFrame的WEST和NORTH分别添加了菜单栏和一棵树,然后点击菜单栏中的按钮出发Action的actionPerformed代码。代码如下

Java code
JTextPane note = new JTextPane();Dimension parentSize = ((BorderLayout)menuShowPanel.getLayout()).preferredLayoutSize(menuShowPanel);note.setSize(parentSize);JScrollPane scrollPane = new JScrollPane(note);scrollPane.setSize(parentSize);menuShowPanel.setCurrentNoteCanvas(note);//menuShowPanel就是上面说的JFramemenuShowPanel.add(scrollPane, BorderLayout.CENTER); //添加到CENTER

但是JTextPane没有按照设计出现在JFrame的CENTER位置,而是出现在坐标为(0,0)的位置。大小也没有按照设计设置。很奇怪,调用JFrame的重绘也不行。怀疑是因为添加了新组件,但是布局管理器没有得到通知,Swing之前没用过,请教大家应该怎么做?

[解决办法]
用JFrame 一般要用container contentPane = this.getContentPane();
用contentPane 作为窗格添加各种JPanel);,并不像你说的//menuShowPanel就是上面说的JFrame 就用menuShowPanel.add(***);
scrollPane好像你这个也没用到
既然使用到BorderLayout 这个布局管理器啦 一般用户设置大小是不行的,特别对于JPanel来说,因为它会根据JFrame大小来布局的!
希望对你有所帮助,本人也是菜鸟一枚。



[解决办法]
你对应的JTextPane note = new JTextPane();
有没有设置成:note.setLayout(new BorderLayout());

热点排行