当前位置: 首页 > 图文教程 > Java技术 > Java基础 > java gui学习

Java基础
体验Java 1.5中面向(AOP)编程
Java中基于Aspectwerkz的AOP
2004开发技术年度综述之Java世界
JavaBeans程序开发
开发基于Java的图形用户界面
Java加密和数字签名编程
Java应用程序中创建图像
初探Java类加载机制
EJB3.0之实体Bean的继承
javamail收取Hotmail的退信
JavaMail访问Hotmail邮箱
EJB3.0开发之多对多和一对一
EJB 3.0开发指南之多表映射
EJB组件与可重用性的矛盾
J2SE中的序默认序列化
Java操作文本文件的方法
Java多线程编程之限制优先级
EJB 3.0 开发指南之定时服务
J2SE中的序列化之继承
J2SE中的序列化的认识

Java基础 中的 java gui学习


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 199 ::
收藏到网摘: n/a

测试程序一:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

代码:

import java.awt.*;

public class TestFrame{

   public static void main(String[] args){

       MyFrame f1 = new MyFrame("just!",30,30,400,400);

   }

}

class MyFrame extends Frame{

  private Panel p1,p2,p3,p4;

  

  MyFrame(String s,int x,int y,int w,int h){

     super(s);

    // setLayout(new FlowLayout());

     setLayout(new GridLayout(2,2));

     p1 = new Panel();

     p2 = new Panel(null);

     p3 = new Panel(null);

     p4 = new Panel(null);

     p1.setBounds(0,0,w/2,h/2);

     p2.setBounds(0,h/2,w/2,h/2);

     p3.setBounds(w/2,0,w/2,h/2);

     p4.setBounds(w/2,h/2,w/2,h/2);

     p1.setBackground(Color.blue);

     p2.setBackground(Color.green);

     p3.setBackground(Color.yellow);

     p4.setBackground(Color.red);

    

      Button btn1 = new Button("f");

      Button btn2 = new Button("d");

      p1.add(btn1);

      p1.add(btn2);

     add(p1);

     add(p2);

     add(p3);

     add(p4);

     setBounds(x,y,w,h);

     setVisible(true);

     setResizable(true);

  }  

}

 
 

1.当Panel p1 = new Panel(null);时表示p1上不能加任何组件,其大小和位置由setBounds(int x,int y,int width,int height)决定。

           2.当Panel p1 = new Panel();时表示p1上可以增加其他组件,这时p1的大小将有所加入的组建大小决定。

           3.当Panel p1 = new Panel();且他的上面没有再加其他组件时p1的大小将是默任的大小应该是5个像素的宽度。

           4. public TextField(int columns)

 

          throws HeadlessException

 

构造具有指定列数的新空文本字段。列是近似平均字符宽度,它与平台有关。

      

 5.当为GridLayout布局时,对Panel的大小设定将不再起作用(尽管此时为Panel p1 = new Panel(null)),当指定了GridLayout的布局模式(比如GridLayout(2,2))则新加入的组件按照所指定的格局排列,如果组件数目不足则优先满足行的排列;若没有明确指定GridLayout的格局模式则将按照竖向排列各组件。

6.可以设置Button的大小和位置,用来确定Button之间的间距,由此应该可以解决Button之间紧挨的问题。

setBounds(),setSize(),setLocation();这些方法都可以考虑应用。

7.Frame的默认布局管理器是BorderLayout

 Panel的默认布局管理器是FlowLayout

8.当panel p1设置为setLayout(null)时直接用p1.add(btn1)方法无法在panel p1上天加按钮,因为此时系统无法确定Button该放在何处,此时要想正常显示button则要用方法setBounds()来指定Button的位置。

9.JFrame的默认布局管理器也是BorderLayout。

  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);可以使得JFrame正常退出。