关于传统awt应用>>
- import java.awt.BorderLayout;
- import java.awt.FlowLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.IOException;
- import javax.swing.JButton;
- import javax.swing.JFileChooser;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTextArea;
- import javax.swing.filechooser.FileFilter;
- public class OpenFile {
- /**
- * @param args
- */
- public static void main(String[] args) {
- final JFrame f = new JFrame("测试");
- f.setVisible(true);
- /*
- * 关于布局有几种常见方法
- * BorderLayout分为 南 北 东 西 中
- * FlowLayout好比一段文字,组件为文字,一个个附加
- * GridLayout
- * */
- f.setLayout(new BorderLayout());
- f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭
- JPanel panel = new JPanel();
- panel.setLayout(new FlowLayout());
- JButton button = new JButton("打开文本");
- panel.add(button);
- JButton button1 = new JButton("保存文本");
- panel.add(button1);
- final JTextArea txt = new JTextArea(30, 40);
- final JLabel label = new JLabel();
- f.add(panel, BorderLayout.NORTH);
- f.add(new JScrollPane(txt), BorderLayout.CENTER);
- f.add(label, BorderLayout.SOUTH);
- f.setBounds(50, 50, 500, 500);
- button.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- JFileChooser file = new JFileChooser("."); //文件当期目录
- file.addChoosableFileFilter(new MyFilter("txt"));//过滤器
- int choose = file.showOpenDialog(f);
- if(choose == 0){
- File ff = file.getSelectedFile();
- try {
- BufferedReader bufr = new BufferedReader(new FileReader(ff));
- String temp = null;
- while((temp=bufr.readLine()) != null){
- txt.append(temp+"\r\n");
- }
- } catch (FileNotFoundException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
- }
- });
- }
- }
- class MyFilter extends FileFilter{
- String postfix; //后缀名
- MyFilter(String postfix) {
- this.postfix = postfix;
- }
- @Override
- public boolean accept(File f) {//这个文件是否列出
- if(f.isDirectory())
- return true;
- String str = f.getName();
- int num = str.lastIndexOf('.');
- if(num >0){
- if(str.substring(num+1, str.length()).equals(postfix)){
- return true;
- }
- }
- return false;
- }
- @Override
- public String getDescription() {//描叙
- return "*."+postfix+"文件";
- }
- }
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.io.File;
- import java.util.ArrayList;
- import javax.swing.ImageIcon;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTextArea;
- public class Test{
- public static void main(String[] args){
- new MyPanel();
- }
- }
- class MyPanel extends JPanel{
- private static JFrame f = new JFrame("test");
- private static ArrayList<Shape> al = new ArrayList<Shape>();
- MyPanel(){
- f.setVisible(true);
- f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- f.add(this);
- f.setBounds(50, 50, 500, 500);
- addMouseListener(new MouseAdapter() {
- Shape s = new Shape();
- public void mousePressed(MouseEvent e) {
- s.setPonit1(e.getX(), e.getY());
- }
- public void mouseReleased(MouseEvent e) {
- s.setPonit2(e.getX(), e.getY());
- al.add(s);
- repaint();
- }
- });
- }
- @Override
- public void paint(Graphics g){
- //g.drawImage(new ImageIcon("/2.jpg").getImage(), 20, 20, 440, 1909, this); //画图片
- //g.setFont(new Font("楷体", 30, 30)); //设置字体
- g.setColor(Color.red); //设置颜色
- //g.drawString("我爱你", 50, 50); //画字符串
- //g.drawLine(shape.getX1(), shape.getY1(), shape.getX2(), shape.getY2()); //直线
- for(int i=0; i<al.size(); i++){
- Shape shape = al.get(i);
- g.drawOval(shape.getX1(), shape.getY1(), shape.getX2()-shape.getX1(), shape.getY2()-shape.getY1());
- //画椭圆
- }
- }
- }
- class Shape{
- private int x1 = 0;
- private int y1 = 0;
- private int x2 = 0;
- private int y2 = 0;
- private ShapeType type = ShapeType.line;
- public void setPonit1(int x1, int y1){
- this.x1 = x1;
- this.y1 = y1;
- }
- public void setPonit2(int x2, int y2){
- this.x2 = x2;
- this.y2 = y2;
- }
- public int getX1() {
- return x1;
- }
- public int getY1() {
- return y1;
- }
- public int getX2() {
- return x2;
- }
- public int getY2() {
- return y2;
- }
- }
- enum ShapeType{
- line,oval,polygon,rect,string;