请教(关于布局) 你的this.getContentPane().add(ctrlPanel,BorderLayout.EAST);好像应该是BordrLayout.SOUTH而不是BorderLayout.EAST这样才可能“无条件向左右延伸至窗口边缘” 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 书上说:BordrLayout布局时,先配置上方和下方,后配置左方和右方,最后配置中间。我改为BordrLayout.SOUTH后也没什么变化 随意放时,默认是采用BorderLayout布局类 我试了你的程序,我去掉了mainPanel直接使用xyTipPanel可以达到你预期效果this.getContentPane().add(xyTipPanel,BorderLayout.CENTER);问题在于你多用了一个mainPanel并且用mainPanel.add(xyTipPanel)即mainPanel位于center,而不是xyTipPanel位于center 那不可以在mainPanel上添加组件了,我还要在mainPanel里添加别的JPanel怎么办呢? 我想要的效果:http://bbs.nju.edu.cn/file/exam.bmp import java.awt.*;import java.awt.event.*;import javax.swing.*;public class TempFrame extends JFrame{ public TempFrame(){ JMenuBar menuBar; JMenu menu; menuBar = new JMenuBar(); setJMenuBar(menuBar); menu = new JMenu("File"); menuBar.add(menu); menu = new JMenu("Help"); menuBar.add(menu); JTabbedPane tabbedPane = new JTabbedPane(); Component panel1 = makeTextPanel("JTabbedPane"); tabbedPane.addTab("Tap1", panel1); tabbedPane.setSelectedIndex(0); Component panel2 = makeTextPanel("JTabbedPane"); tabbedPane.addTab("Tap2", panel2); Component panel3 = makeTextPanel("JTabbedPane"); tabbedPane.addTab("Tap3", panel3); JPanel centerPanel=new JPanel();//Add the tabbed pane to this panel. centerPanel.setLayout(new GridLayout(1, 1)); centerPanel.add(tabbedPane); JPanel eastPanel=new JPanel(); eastPanel.setLayout(new GridLayout(3, 1)); eastPanel.add(new JToggleButton("JToggleButton")); eastPanel.add(new JSlider()); eastPanel.add(new JSlider()); getContentPane().add(centerPanel,BorderLayout.CENTER); getContentPane().add(eastPanel,BorderLayout.EAST); getContentPane().add(new JProgressBar(),BorderLayout.SOUTH); } protected Component makeTextPanel(String text) { JPanel panel = new JPanel(false); JLabel filler = new JLabel(text); filler.setHorizontalAlignment(JLabel.CENTER); panel.setLayout(new GridLayout(1, 1)); panel.add(filler); return panel; } public static void main(String[] args) { TempFrame window = new TempFrame(); window.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); window.setTitle("Title"); window.setSize(450, 260); window.setVisible(true); }} 我自己也改了一下:不过还是谢谢了,另外有个新问题http://expert.csdn.net/Expert/TopicView1.asp?id=1757275 接触p2p,望指点 定义一个数组 JAVA中二维数组的转置 Java判断题 请帮个忙。初学者。所以可能问题比较幼稚。请见晾 给个资源把 mina2 轮循AbstractPollingIoAcceptor类方法 问题 !!!调用yahoo的搜索API!! IE中可以查询 ------附源码 哪位大侠能提供递归法做树型结构的目录的实例吗? 用java能跑起一个服务吗 请问线程不用stop那用什么停止? 一个奇怪的问题.解决了高分相送!!!
我改为BordrLayout.SOUTH后也没什么变化
直接使用xyTipPanel可以达到你预期效果
this.getContentPane().add(xyTipPanel,BorderLayout.CENTER);问题在于你多用了一个mainPanel并且用mainPanel.add(xyTipPanel)
即mainPanel位于center,而不是xyTipPanel位于center
http://bbs.nju.edu.cn/file/exam.bmp
import java.awt.event.*;
import javax.swing.*;public class TempFrame extends JFrame{
public TempFrame(){
JMenuBar menuBar;
JMenu menu;
menuBar = new JMenuBar();
setJMenuBar(menuBar);
menu = new JMenu("File");
menuBar.add(menu);
menu = new JMenu("Help");
menuBar.add(menu);
JTabbedPane tabbedPane = new JTabbedPane(); Component panel1 = makeTextPanel("JTabbedPane");
tabbedPane.addTab("Tap1", panel1);
tabbedPane.setSelectedIndex(0); Component panel2 = makeTextPanel("JTabbedPane");
tabbedPane.addTab("Tap2", panel2); Component panel3 = makeTextPanel("JTabbedPane");
tabbedPane.addTab("Tap3", panel3); JPanel centerPanel=new JPanel();//Add the tabbed pane to this panel.
centerPanel.setLayout(new GridLayout(1, 1));
centerPanel.add(tabbedPane);
JPanel eastPanel=new JPanel();
eastPanel.setLayout(new GridLayout(3, 1));
eastPanel.add(new JToggleButton("JToggleButton"));
eastPanel.add(new JSlider());
eastPanel.add(new JSlider());
getContentPane().add(centerPanel,BorderLayout.CENTER);
getContentPane().add(eastPanel,BorderLayout.EAST);
getContentPane().add(new JProgressBar(),BorderLayout.SOUTH);
} protected Component makeTextPanel(String text) {
JPanel panel = new JPanel(false);
JLabel filler = new JLabel(text);
filler.setHorizontalAlignment(JLabel.CENTER);
panel.setLayout(new GridLayout(1, 1));
panel.add(filler);
return panel;
}
public static void main(String[] args) {
TempFrame window = new TempFrame();
window.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});
window.setTitle("Title");
window.setSize(450, 260);
window.setVisible(true);
}
}