JAVA笔记【20131215】
2013-12-15 23:02
330 查看
图形程序设计
一、创建框架
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;
}
一、创建框架
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;
}
相关文章推荐
- Java学习笔记-初始化与清理
- Java学习笔记(一)
- JAVA并发编程学习笔记------对象的可见性及发布逸出
- java学习笔记----初始化顺序
- java学习笔记之抽象类和接口
- Java学习笔记(十六)
- 《黑马程序员》java笔记->生产消费多线程,同步代码块(优化代码)
- 黑马程序员_java基础学习笔记之排序算法(选择排序、冒泡排序
- Java-API学习笔记---Integer
- java基础笔记
- PHP笔记——java程序员看懂PHP程序
- Java基础学习笔记(二)【第四章笔记】
- JAVA学习笔记(10)
- java学习笔记(五) -- 字符串
- Java基础复习笔记系列 十三 反射机制
- java学习笔记—EL表达式(38)
- Java多线程学习笔记——信号量的使用
- 我的Java基础的学习笔记
- (JAVA SE 学习笔记)Java.SE.第011讲.面向对象之封装.续二(对一些原理机制进行了详细的解释,适合初学者学习)
- Java无难事(笔记)-Lesson9-applet