现在的位置: 首页 > 综合 > 正文

java Swing

2013年12月06日 ⁄ 综合 ⁄ 共 2806字 ⁄ 字号 评论关闭

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()会导致显示效果不一样啊?下次再贴代码和运行结果.

 

抱歉!评论已关闭.