Jav很开心,今天我的拓展平到了,然后。我觉得。现在开始。我应该好好搞了
Gui
-
完整改造面向对象那个
-
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Calculator extends Frame { public static void main(String[] args) { new Calculator(); } //属性方法 TextField te1,te2,te3; public Calculator(){ te1=new TextField(10); te2=new TextField(10); te3=new TextField(20); Mylisten mylisten = new Mylisten(this); setBounds(100,100,400,400); Button button=new Button("="); button.addActionListener(mylisten); setVisible(true); setLayout(new FlowLayout()); Label label=new Label("+"); add(te1); add(label); add(te2); add(button); add(te3); addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } } class Mylisten implements ActionListener{ Calculator calculator=null; public Mylisten(Calculator calculator){ this.calculator=calculator; } @Override public void actionPerformed(ActionEvent e) { int n1=Integer.parseInt(calculator.te1.getText()); int n2=Integer.parseInt(calculator.te2.getText()); calculator.te3.setText(""+(n1+n2)); calculator.te1.setText(""); calculator.te2.setText(""); } }
内部类
- 最应该使用的操作,更好的包装
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Calculator extends Frame {
public static void main(String[] args) {
new Calculator();
}
//属性方法
TextField te1,te2,te3;
public Calculator(){
te1=new TextField(10);
te2=new TextField(10);
te3=new TextField(20);
Mylisten mylisten = new Mylisten();
setBounds(100,100,400,400);
Button button=new Button("=");
button.addActionListener(mylisten);
setVisible(true);
setLayout(new FlowLayout());
Label label=new Label("+");
add(te1);
add(label);
add(te2);
add(button);
add(te3);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
private class Mylisten implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
int n1=Integer.parseInt(te1.getText());
int n2=Integer.parseInt(te2.getText());
te3.setText(""+(n1+n2));
te1.setText("");
te2.setText("");
}
}
}
- 内部类的最大优势,就是可以访问外部类畅通无阻
2.7、画笔
import java.awt.*;
public class TestPaint {
public static void main(String[] args) {
new Mypanit().loadFram();
}
}
class Mypanit extends Frame{
//画笔
public void loadFram(){
setVisible(true);
setBounds(200,200,600,500);
}
@Override
public void paint(Graphics g) {
// super.paint(g);
//画笔需要有颜色
g.setColor(Color.BLACK);
g.drawOval(100,100,100,100);
g.fillOval(100,100,100,100);
g.setColor(Color.cyan);
g.fillRect(150,200,200,200);
//用完将他还原到最初的颜色,不然会带上上一个颜色
}
}
2.8、鼠标监听 键盘 窗口
package com.kangsdan;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import java.util.Iterator;
/*
测试鼠标监听实现
*/
public class TestMouse {
public static void main(String[] args) {
new MyFram("画图");
}
}
class MyFram extends Frame{
//需要画笔
@Override
public void paint(Graphics g) {
//画画,需要添加针对
Iterator iterator = pointy.iterator();
while (iterator.hasNext()){
Point point=(Point) iterator.next();
g.setColor(Color.cyan);
g.fillOval(point.x,point.y,10,10);
}
}
ArrayList pointy;
public void addPain(Point point){
pointy.add(point);
}
public MyFram(String tietle) {
super(tietle);
setVisible(true);
pointy=new ArrayList<>();
setBounds(200,200,400,300);
this.addMouseListener(new MouseLis());
}
//需要当前鼠标的位置
private class MouseLis extends MouseAdapter{
//鼠标点击 按下,弹起,按住不放
@Override
public void mousePressed(MouseEvent e) {
MyFram myFram=(MyFram)e.getSource();
//点就是鼠标的点
myFram.addPain(new Point(e.getX(),e.getY()));
//每次点击鼠标都需要重新画
myFram.repaint();//刷新
}
}
}
2.9窗口监听
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestWindow {
public static void main(String[] args) {
new Windwos();
}
}
class Windwos extends Frame{
public Windwos(){
Button button=new Button("1");
setBackground(Color.BLACK);
setVisible(true);
setBounds(100,100,200,200);
addWindowListener(new WindLi());
}
class WindLi extends WindowAdapter{
@Override
public void windowActivated(WindowEvent e) {
super.windowActivated(e);
}
public void windowClosing(WindowEvent e) {
}
}
}
键盘监听
package com.kangsdan;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class TestKey {
public static void main(String[] args) {
new Key();
}
}
class Key extends Frame{
public Key() {
setVisible(true);
setBounds(200,200,400,600);
addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int key=e.getKeyCode();
if(key==KeyEvent.VK_UP){
System.out.println("你上了");
}else {
System.out.println(key);//不需要记住
}
}
});
}
}
2.Swing
Awt的包装
3.窗口耦合面板
package com.kangsdan.Swing;
import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//init();初始化
public class JFramTest {
public void init(){
JFrame swing = new JFrame("Swing窗口");
swing.setVisible(true);
swing.setBounds(200,200,400,400);
swing.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JFramTest().init();
}
}