Java_swing_图形化界面实例应用

来源:互联网 发布:超市销售记录数据 编辑:程序博客网 时间:2024/05/18 16:56
关于传统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 blocke1.printStackTrace();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}}});}}class MyFilter extends FileFilter{String postfix;//后缀名MyFilter(String postfix) {this.postfix = postfix;}@Overridepublic 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;}@Overridepublic 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();}});}@Overridepublic 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;}

原创粉丝点击