标签:integer open round 大小 echo name inf 计算器 bsp
AWT
?AWT(Abstract Window Toolkit)包括了很多类和接口,用于Java Application
的GUI (Grapbics User Interface图形用户界面)编程。
?GUI的各种元素(如: 窗口,按钮,文本框等)由Java类来实现。
?使用AWT所涉 及的类-般在java.awt包及其子包中。
?Container和Component是 AWT中的两个核心类。
Component & Container
Java的图形用户界面的最基本组成部分是Component,Component类及其子类的对象
用来描述以图形化的方式显示在屏幕上并能与用户进行交互的GUI元素,例如,-一个按钮,
一个标签等。
?一般的Component对 象不能独立地显示出来,必须将”放在"某-的Container对象中才可
以显示出来。
?Container是Component子类,Container子 类对象可以“容纳”别的Component对象。
?Container对象可使用方法add(..)向其中添加其他Component对象。
?Containter 是Component的子类,因此Containter对象也可以被当作Component对象添
加到其他Container对象中。
?有 两种常用的Containter:
Window:其对象表示自由停泊的顶级窗口
Panel:其对象可作为容纳其它Component对象,但不能独立存在,必须被添加到其
它Containner中(如Window或Applet)
package com.shuai01; import java.awt.*; public class TestFrameDemo01 { public static void main(String[] args) { myFrame m1 = new myFrame(100,100,200,200,Color.yellow); myFrame m2 = new myFrame(300,100,200,200,Color.green); myFrame m3 = new myFrame(100,300,200,200,Color.red); myFrame m4 = new myFrame(300,300,200,200,Color.orange); } } class myFrame extends Frame { static int id = 0; myFrame(int x,int y,int w,int h,Color color) { super("myFrame"+ (++id)); setBackground(color); setLayout(null); setBounds(x,y,w,h); setVisible(true); } }
程序1
package com.shuai01; import java.awt.*; public class TestPanel { public static void main(String[] args) { Frame f = new Frame("java Frame with panel"); Panel p = new Panel(null); f.setLayout(null); f.setBounds(300,300,500,500); f.setBackground(new Color(100,220,100)); p.setBounds(50,50,400,400); p.setBackground(new Color(204,204,255)); f.add(p); f.setVisible(true); } }
程序2
package com.shuai01; import java.awt.*; public class TestmultiPanel { public static void main(String[] args) { MyFrame2 m = new MyFrame2("java frame",300,300,400,300); } } class MyFrame2 extends Frame { private Panel p1, p2, p3, p4; MyFrame2(String s, int x, int y, int w, int h) { super(s); setLayout(null); p1 = new Panel(null); 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.orange); p4.setBackground(Color.cyan); add(p1);add(p2);add(p3);add(p4); setBounds(x,y,w,h); setVisible(true); } }
布局管理器类:
◆Java语言中,提供了布局管理器类的对象可以管理
◆管 理Component在Container中的布局,不必直接设置
Component位置和大小。
◆每 个Container都有一个布局管理器对象,当容器需要对某个组件
进行定位或判断其大小尺寸时,就会调用其对应的布局管理器,调用
Container的setLayout方法改变其布局管理器对象。
◎Awt提供了5种布局管理器类:
◆FlowLayaout
◆BorderLayout
◆GridlLayou
◆CardLayout
◆GridBagLayout
1mport java.aut. *: public class TestFlowLayout ( public static void main(String args[]) { Frane I。new Frane ("F lou Layout") ; Button button1 neu Button("Ok") ; Button button2 = new Button("Open") : Button button3 = new Button("Close") : f.setLayout (new FlowLayout (FlowLayout .LEFT)) ; f. add (button1) ; f. add (button2) ; f. add (button3) ; f.setSize (100, 100) ; f.setVisible(true) ;
package com.shuai01; import java.awt.*; public class TestBorderLayout { public static void main(String[] args) { Frame f; f = new Frame("Border Layout"); Button bn = new Button("BN"); Button bs = new Button("BS"); Button bw = new Button("BW"); Button be = new Button("BE"); Button bc = new Button("BC"); f.add(bn,BorderLayout.NORTH); f.add(bs,BorderLayout.SOUTH); f.add(bw, BorderLayout.WEST); f.add(be,BorderLayout.EAST); f.add(bc,BorderLayout.CENTER); f.setSize(200,200); f.setVisible(true); } }
package com.shuai01; import java.awt.*; public class TestBorderLayout { public static void main(String[] args) { Frame f; f = new Frame("GridLayout"); Button bn = new Button("BN"); Button bs = new Button("BS"); Button bw = new Button("BW"); Button be = new Button("BE"); Button bc = new Button("BC"); f.setLayout(new GridLayout(3,4)); f.add(bn); f.add(bs); f.add(bw); f.add(be); f.add(bc); f.pack(); f.setVisible(true); } }
addActionListener?(ActionListener l) |
添加指定的动作侦听器以从此按钮接收动作事件。
|
---|
package com.shuai01; import java.awt.*; import java.awt.event.*; public class TestActionEvent2 { public static void main(String args[]) { Frame f = new Frame("Teat"); Button b1 = new Button("Start"); Button b2 = new Button("Stop"); Monitor2 bh = new Monitor2(); b1.addActionListener (bh); b2.addActionListener (bh); b2.setActionCommand("game over"); f.add(b1, "North"); f.add(b2, "Center"); f.pack(); f.setVisible(true); } } class Monitor2 implements ActionListener{ public void actionPerformed(ActionEvent e){ System.out.println("a button has been pressed,"+ "the relativeinfo 18:\n "+ e.getActionCommand()) ; } }
public void setEchoChar?(char c)
持有对方引用
计算机加法
代码如下
package com.shuai01; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class TFmath { public static void main(String[] args) { TFFrame t1 = new TFFrame(); t1.setTitle("计算器"); t1.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 myMonnitor(num1, num2, num3)); btnEqual.addActionListener(new myMonnitor(this)); setLayout(new FlowLayout()); add(num1); add(lblPlus); add(num2); add(btnEqual); add(num3); pack(); setVisible(true); } } class myMonnitor implements ActionListener { /* TextField num1, num2, num3; public myMonnitor(TextField num1, TextField num2, TextField num3) { this.num1 = num1; this.num2 = num2; this.num3 = num3; } */ //持有对方的引用 TFFrame tf = null; public myMonnitor(TFFrame tf) { this.tf = tf; } @Override public void actionPerformed(ActionEvent e) { int n1 = Integer.parseInt(tf.num1.getText()); int n2 = Integer.parseInt(tf.num2.getText()); tf.num3.setText(String.valueOf(n1+n2)); } }
内部类改进后
package com.shuai01; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class TFmathDemo01 { public static void main(String[] args) { new TFFrame().lanuchFrame(); } } class TFFrame extends Frame { TextField num1, num2, num3; public void lanuchFrame() { num1 = new TextField(10); num2 = new TextField(10); num3 = new TextField(15); Label lblplus = new Label("+"); Button equals = new Button("="); equals.addActionListener(new myMonitor()); setLayout(new FlowLayout()); add(num1); add(lblplus); add(num2); add(equals); add(num3); pack(); setVisible(true); } class myMonitor implements ActionListener { @Override public void actionPerformed(ActionEvent e) { int n1 = Integer.parseInt(num1.getText()); int n2 = Integer.parseInt(num2.getText()); num3.setText(" " + (n1 + n2)); } } }
标签:integer open round 大小 echo name inf 计算器 bsp
原文地址:https://www.cnblogs.com/lsswudi/p/11461294.html