(完整word版)Java知识总结完整版,推荐文档 联系客服

发布时间 : 星期四 文章(完整word版)Java知识总结完整版,推荐文档更新完毕开始阅读42c9f84f148884868762caaedd3383c4ba4cb456

Panel downc = new Panel(new GridLayout(2,2)); down.add(downc,BorderLayout.CENTER); downc.add(new Button(\ downc.add(new Button(\ downc.add(new Button(\ downc.add(new Button(\

f.setSize(400,300); f.setVisible(true); } }

布局管理器总结

Frame是一个顶级窗口,Frame的缺省布局管理器为BorderLayout

Panel无法单独显示,必须添加到某个容器中,Panel的缺省布局管理器为FlowLayout

当把Panel作为一个组件添加到某个容器中后,该Panel仍然可以有自己的布局管理器

使用布局管理器时,布局管理器负责各个组件的大小和位置,因此用户无法在这种情况下设置组件的大小和位置属性,如果试图使用Java语言提供的setLocation(),setSize(),setBounds()等方法,则都会被布局管理器覆盖 如果用户确实需要亲自设置组件大小或位置,则应取消该容器的布局管理器,方法为:setLayout(null)

事件监听 注册 事件源对象 实现了某种监听器接口 的类的对象 向监听器传送某种事件对象 当某种事情发生 (封装了某种事件的信息) 接到事件对象后进行某种处理

import java.awt.*;

import java.awt.event.*;

public class TestActionEvent {

public static void main(String args[]) { Frame f = new Frame(\

Button b = new Button(\ Monitor bh = new Monitor(); b.addActionListener(bh);

f.add(b,BorderLayout.CENTER);

f.pack();//调整此窗口的大小,以适合其子组件的首选大小和布局 f.setVisible(true); }

}

class Monitor implements ActionListener {

public void actionPerformed(ActionEvent e) {

System.out.println(\ } }

TextField类

java.awt.TextField类用来创建文本框对象 TextField有如下常用方法: TextField()

TextField(int columns) TextField(String text)

TextField(String text,int columns) public void setText(String t) public String getText()

public void setEchoChar(char c):设置回显字符 public void setEditable(boolean b) public boolean isEditable()

public void setBackground(Color c)

public void select(int selectionStart,int selectionEnd) public void selectAll()

public void addActionListener(ActionListener):添加动作监听器

TextField事件监听

TextField对象可能发生Action(光标在文本框内敲回车)事件。与该事件对应的事件类是java.awt.event.ActionEvent

用来处理ActionEvent事件是实现java.awt.event.ActionListener接口的类的对象,ActionListener接口定义有方法:

public void actionPerformed(ActionEvent e)

实现该接口的类要在该方法中添加处理该事件(Action)的语句

使用addActionListener(ActionListener l)方法为TextField对象注册一个ActionListener对象,当TextField对象发生Action事件时,会生成一个ActionEvent对象,该对象作为参数传递给ActionListerner对象的actionPerformer方法在方法中可以获取该对象的信息,并做相应的处理

import java.awt.*;

import java.awt.event.*; public class TFActionEvent {

public static void main(String[] args) { new TFFrame(); } }

class TFFrame extends Frame

{

TFFrame() {

TextField tf = new TextField(); add(tf);

tf.addActionListener(new TFActionListener()); //tf.setEchoChar(‘*’);//密码 pack();

setVisible(true); } }

class TFActionListener implements ActionListener {

public void actionPerformed(ActionEvent e) {

TextField tf = (TextField)e.getSource(); System.out.println(tf.getText()); tf.setText(\ } }

持有对方引用

import java.awt.*;

import java.awt.event.*; public class TFMath {

public static void main(String[] args) { new TFFrame().launchFrame(); } }

class TFFrame extends Frame { TextField num1,num2,num3; public void launchFrame() { num1 = new TextField(10); num2 = new TextField(10); num3 = new TextField(15);

Label lblPlus = new Label(\ Button btnEqual = new Button(\

btnEqual.addActionListener(new MyMonitor(this)); setLayout(new FlowLayout());

add(num1);add(lblPlus);add(num2);add(btnEqual);add(num3); pack();

setVisible(true); } }

class MyMonitor implements ActionListener { /*

TextField num1,num2,num3;

public MyMonitor(TextField num1,TextField num2,TextField num3) { this.num1 = num1; this.num2 = num2; this.num3 = num3; } */

TFFrame tf = null;

public MyMonitor(TFFrame tf) { this.tf = tf; }

public void actionPerformed(ActionEvent e) {

int n1 = Integer.parseInt(tf.num1.getText()); int n2 = Integer.parseInt(tf.num2.getText()); tf.num3.setText(\ } }

内部类OutClass$InClass.class 好处:

可以方便的访问包装类的成员

可以更清楚的组织逻辑,防止不应该被其他类访问的类进行访问 何时使用:

该类不允许或不需要其他类进行访问时

import java.awt.*;

import java.awt.event.*; public class TFMath {

public static void main(String[] args) { new TFFrame().launchFrame(); } }

class TFFrame extends Frame { TextField num1,num2,num3; public void launchFrame() { num1 = new TextField(10); num2 = new TextField(10); num3 = new TextField(15);

Label lblPlus = new Label(\ Button btnEqual = new Button(\

btnEqual.addActionListener(new MyMonitor()); setLayout(new FlowLayout());