学习JAVA第二十八次
一、学习内容:
文本框是接受用户输入的种组件 ,Swing将文本组件分为三大类
(1)文本字段(text fields),包括类JTexrField和JPasswordField用于显示和编辑较短的,不带格式的一行文本。
(2)纯文本区域(plain text areas),包括类JTextArea,用于显示和编辑较长的、不带格式的多行文本,通常用于显示没有格式的帮助信息。纯文本区域的使用基于文档事件(即主要监听文档类型的事件DocumentEvent),程序通常使用文档事件监听器监听用户对纯文本区域的改变。
(3)带样式文本区域(styled text areas) ,包括类JEditorPane和JTextPane,可用于显示和编辑复杂的、带样式的文本。JEditorPane 类支持纯文本、HTML和RTF的文本编辑;JTextPane类进一步扩 展了JEditorPane 类的功能.允许文本中嵌人图像或其他组件。
二、代码练习:
第一个包:
1、
package Demo01;
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
public class TestTextDemo01 extends JFrame {
public TestTextDemo01() {
Container container=this.getContentPane();
JTextField textfield=new JTextField("hello world");
JTextField textfield2=new JTextField("大数据2005班");
container.add(textfield,BorderLayout.NORTH);
container.add(textfield2,BorderLayout.SOUTH);
this.setVisible(true);
this.setSize(500,350);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TestTextDemo01();
}
}
2、
package Demo01;
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
public class TestTextDemo2 extends JFrame {
public TestTextDemo2() {
Container container=this.getContentPane();
JPasswordField passworldField=new JPasswordField();
passworldField.setEchoChar('^');
container.add(passworldField);
this.setVisible(true);
this.setSize(500,350);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TestTextDemo2();
}
}
第二个包:
1、
package Demo02;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class TextActionEvent {
public static void main(String[] args) {
JFrame frame=new JFrame();
frame.setSize(400,400);
frame.locate(400,300);
MyActionListener myActionListener=new MyActionListener();
Button button=new Button();
button.addActionListener(myActionListener);
frame.add(button,BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
class MyActionListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("大数据五班");
}
}
2、
package Demo02;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class TextActionTwo {
public static void main(String[] args) {
JFrame frame=new JFrame("开始--停止");
frame.setSize(400,400);
frame.locate(400,300);
Button button1=new Button("start");
Button button2=new Button("stop");
MyMonitor myMonitor=new MyMonitor();
button1.addActionListener(myMonitor);
button2.addActionListener(myMonitor);
frame.add(button1,BorderLayout.NORTH);
frame.add(button2,BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
class MyMonitor implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
//System.out.println("大数据五班->"+e.getActionCommand());
if(e.getActionCommand().equals("stop")) {
System.out.println("我要下班了");
}else {
System.out.println("我要开始工作了");
}
}
}
3、
package Demo02;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
public class TextText01 {
public static void main(String[] args) {
new MyFrame();
}
}
class MyFrame extends JFrame{
public MyFrame() {
TextField textField=new TextField();
this.add(textField);
MyActionListener2 myActionListener2=new MyActionListener2();
textField.addActionListener(myActionListener2);
textField.setEchoChar('%');
this.setVisible(true);
this.pack();
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
class MyActionListener2 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
TextField field=(TextField)e.getSource();
System.out.println(field.getText());
field.setText("");
}
}
第三个包:
1、
package Demo03;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
public class TestKeyListener {
public static void main(String[] args) {
new KeyFrame();
}
}
class KeyFrame extends JFrame{
public KeyFrame() {
this.setBounds(10,10,300,400);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.addKeyListener(
new KeyAdapter(){
@Override
public void keyPressed(KeyEvent e) {
int keycode=e.getKeyCode();
//System.out.println(keycode);
if(keycode==KeyEvent.VK_UP) {
System.out.println("您按下了 上键");
}
if(keycode==KeyEvent.VK_W) {
System.out.println("您按下了 w上键");
}
}
});
}
}
2、
package Demo03;
import java.awt.Color;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
public class TestWindow {
public static void main(String[] args) {
new WindowFrame();
}
}
class WindowFrame extends JFrame {
public WindowFrame() {
this.setBackground(Color.blue);
this.setBounds(100,100,500,500);
this.setVisible(true);
//this.setDefaultCloseOperation(EXIT_ON_CLOSE);
//this.addWindowListener(new MywindowListener());
this.addWindowListener(
new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
setVisible(false);
System.out.println("我要关闭");
}
@Override
public void windowActivated(WindowEvent e) {
super.windowActivated(e);
System.out.println("windowActivated");
}@Override
public void windowClosed(WindowEvent e) {
//super.windowClosed(e);
//setVisible(false);
System.out.println("windowClosed");
}
@Override
public void windowOpened(WindowEvent e) {
//super.WindowOpened(e);
System.out.println("windowOpened");
}
}
);
}
/*
class WindowListener extends WindowAdapter{
//按住 alt + /
@Override
public void WindowClosing(WindowEvent e) {
super.windowClosing(e);
System.out.println("我要关闭");
System.exit(0);
}
}*/
}
3、
package Demo03;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JFrame;
public class TextMouseListener {
public static void main(String[] args) {
new MyFrame("我能画图");
}
}
class MyFrame extends JFrame{
ArrayList points;
public MyFrame(String title) {
super(title);
this.setBounds(200,200,400,400);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.addMouseListener(new MyMouseListener());
}
public void paint(Graphics g) {
Iterator iterator=points.iterator();
while(iterator.hasNext()) {
Point point=(Point)iterator.next();
g.setColor(Color.cyan);
g.fillOval(point.x,point.y,10,10);
}
}
public void addPaint(Point point) {
points.add(point);
}
private class MyMouseListener extends MouseAdapter{
@Override
public void mousePressed(MouseEvent e) {
MyFrame myFrame=(MyFrame)e.getSource();
System.out.println("x坐标: "+e.getX()+"y坐标: "+e.getY());
myFrame.addPaint(new Point(e.getX(),e.getY()));
myFrame.repaint();
}
}
}