JAVA笔记【20131215】
来源:互联网 发布:origin作图软件ios 编辑:程序博客网 时间:2024/06/11 14:05
图形程序设计
一、创建框架
Java中顶层窗口叫做框架(Frame)。JFrame是极少数几个不绘制在画布上的Swing组件之一,它的修饰部件由用户的窗口系统绘制。而不是由Swing绘制。
import javax.swing.*;import java.awt.*;import java.util.Locale;public class SimpleFrameTest{public static void main(String[] args){SimpleFrame sp = new SimpleFrame();Toolkit tkt = Toolkit.getDefaultToolkit();Image img = tkt.getImage("2b.jpg");sp.setIconImage(img); //设置框架图标sp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口是操作sp.setAlwaysOnTop(true); //设置窗口始终位于其他窗口上方//sp.show(); //已过时显示窗口方法sp.setBackground(Color.BLUE);sp.setForeground(Color.CYAN);sp.setLocale(Locale.CHINA); //设置组件语言环境sp.setLocation(295,192); //将组件移到新位置sp.setVisible(true); //显示组件sp.setTitle("SimpleWindow"); //标题栏JOptionPane.showMessageDialog(sp,"Quit Programe?");sp.setSize(sp.getMaximumSize()); //最大组件大小JOptionPane.showMessageDialog(sp,"Quit Programe?");sp.setSize(sp.getMinimumSize()); //最小组件大小JOptionPane.showMessageDialog(sp,"Quit Programe?");sp.setBounds(0,0,300,200); //设置组件显示位置和大小JOptionPane.showMessageDialog(sp,"Quit Programe?");sp.dispose(); //关闭窗口,并回收创建窗口所使用的全部资源}}class SimpleFrame extends JFrame{public SimpleFrame(){setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT); //设置组件宽度和高度setResizable(false); //设置组件大小是否可调节}public static final int DEFAULT_WIDTH = 600;public static final int DEFAULT_HEIGHT = 300;}
二、在面板中显示信息。
JPanel类的paintComponent方法。
class MyPanel extends JPanel{public void paintComponent(Graphics g){//..................}}
不管何种原因,只要窗口需要重新绘图,事件处理器就会通知组件,从而引发所有组件的paintComponent方法。一定不要自己调用paintComponent方法。
import javax.swing.*;import java.awt.*;public class SimpleFrameTest01{public static void main(String[] args){SimpleFrame sp = new SimpleFrame();sp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口是操作//sp.show(); //已过时显示窗口方法sp.setVisible(true); //显示组件sp.setTitle("SimpleWindow"); //标题栏}}class SimpleFrame extends JFrame{public SimpleFrame(){MyPanel mp = new MyPanel();setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT); //设置组件宽度和高度setResizable(false); //设置组件大小是否可调节add(mp);}public static final int DEFAULT_WIDTH = 600;public static final int DEFAULT_HEIGHT = 300;}class MyPanel extends JPanel{public void paintComponent(Graphics g){super.paintComponent(g);g.drawString("FirstGraph",StringX,StringY);}public static final int StringX=255;public static final int StringY=150;}
三、2D图形
Graphics类的子类Graphics2D类有更强大的绘图功能。
paintComponent方法会自动获得一个Graphics2D类对象,只要进行一次类型转换即可。
public void paintComponent(Graphics g){Graphics2D gps2D = (Graphics2D)g; //..............................}
Graphics和Graphics2D均抽象类,是不可实例化的,此处g的类型是sun.java2d.SunGraphics2D的,是由虚拟机传过来的。
import javax.swing.*;import java.awt.*;public class SimpleFrameTest02{public static void main(String[] args){SimpleFrame sp = new SimpleFrame();sp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口是操作//sp.show(); //已过时显示窗口方法sp.setVisible(true); //显示组件sp.setTitle("SimpleWindow"); //标题栏}}class SimpleFrame extends JFrame{public SimpleFrame(){MyPanel mp = new MyPanel();setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT); //设置组件宽度和高度setResizable(false); //设置组件大小是否可调节add(mp);}public static final int DEFAULT_WIDTH = 600;public static final int DEFAULT_HEIGHT = 300;}class MyPanel extends JPanel{public void paintComponent(Graphics g){super.paintComponent(g);g.drawString("FirstGraph",StringX,StringY);System.out.println(g.getClass().getName());Graphics2D gps2D = (Graphics2D)g ;gps2D.draw3DRect(255,150,50,60,true); }public static final int StringX=255;public static final int StringY=150;}
0 0
- JAVA笔记【20131215】
- java笔记
- JAVA笔记
- java笔记
- java笔记
- JAVA笔记
- java笔记
- Java 笔记
- java笔记
- java 笔记
- java笔记
- java笔记
- java笔记
- Java笔记
- java笔记
- java笔记
- Java笔记
- java笔记
- 抽屉原理
- vi 與 vim 的指令整理
- HDU 2602 Bone Collector
- NYOJ 64 鸡兔同笼
- 指针2
- JAVA笔记【20131215】
- bss,data,rodata,text
- 开源网络库的分析libevent muduo nginx ....
- Win8下jdk环境变量设置
- php中getimagesize函数的返回数值
- Android中对Log日志文件的分析
- 增进离岸Java开发效率的10个提示
- 用U盘与移动硬盘制作WIN7启动盘(亲自实践)
- 进制转换的原理