package com.hansp.graphics;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JToolBar;
public class NodePad extends JFrame{
JMenuBar jmb;
JMenu jmenu1,jmenu2,jmenu3,jmenu4,jmenu5;
JMenuItem jmitem2,jmitem3,jmitem4,jmitem5,jmitem6,jmitem7;
JMenu New;
JMenuItem File,project;
JTextArea area;
JToolBar jtbar;
JButton jb1,jb2,jb3,jb4,jb5,jb6;
JScrollPane jsp;
public NodePad(){
//创建组建
jb1 =new JButton(new ImageIcon("images/new.jpg"));
jb1.setToolTipText("新建");
jb2 =new JButton(new ImageIcon("images/copy.jpg"));
jb2.setToolTipText("复制");
jb3 =new JButton(new ImageIcon("images/cut.jpg"));
jb3.setToolTipText("剪切");
jb4 =new JButton(new ImageIcon("images/paste.jpg"));
jb4.setToolTipText("粘贴");
jb5 =new JButton(new ImageIcon("images/save.jpg"));
jb5.setToolTipText("保存");
jb6 =new JButton(new ImageIcon("images/open.jpg"));
jb6.setToolTipText("打开");
jmb=new JMenuBar();
jmenu1 =new JMenu("文件(F)");
jmenu1.setMnemonic('F');//助记符
jmenu2 =new JMenu("编辑(E)");
jmenu2.setMnemonic('E');
jmenu3 =new JMenu("格式(O)");
jmenu3.setMnemonic('O');
jmenu4 =new JMenu("查看(V)");
jmenu4.setMnemonic('V');
jmenu5 =new JMenu("帮助(H)");
jmenu5.setMnemonic('H');
New =new JMenu("新建(N)");
File=new JMenuItem("文件");
project =new JMenuItem("工程");
jmitem2=new JMenuItem("打开(O)");
jmitem3=new JMenuItem("保存(S)");
jmitem4=new JMenuItem("另存为(A)");
jmitem5=new JMenuItem("页面设置(U)");
jmitem6=new JMenuItem("打印(P)");
jmitem7=new JMenuItem("退出(X)");
jtbar=new JToolBar();
area=new JTextArea();
//添加组建
jtbar.add(jb1);
jtbar.add(jb2);
jtbar.add(jb3);
jtbar.add(jb4);
jtbar.add(jb5);
jtbar.add(jb6);
New.add(File);
New.add(project);
jmenu1.add(New);
jmenu1.add(jmitem2);
jmenu1.add(jmitem3);
jmenu1.add(jmitem4);
jmenu1.addSeparator();
jmenu1.add(jmitem5);
jmenu1.add(jmitem6);
jmenu1.addSeparator();
jmenu1.add(jmitem7);
jmb.add(jmenu1);
jmb.add(jmenu2);
jmb.add(jmenu3);
jmb.add(jmenu4);
jmb.add(jmenu5);
this.setJMenuBar(jmb);//将菜单条加到窗体上。
this.add(jtbar,BorderLayout.NORTH); //工具条加到窗体上。
jsp=new JScrollPane(area);
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
this.add(jsp);
this.setTitle("记事本");
this.setIconImage(new ImageIcon("images/notebook.jpg").getImage());
// this.setLayout(new BorderLayout());
this.setLocation(300, 200);
this.setSize(400,300);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
NodePad nodepad =new NodePad();
}
}
运行结果为:
而加上this.setLayout(new BorderLayout());这句话
运行结果为如下:
问题:JFrame默认的布局方式不是BorderLayout吗?那什么原因导致不同的结果?求大神解答?另外this.pack()会导致显示效果不一样啊?下次再贴代码和运行结果.