API文档:https://docs.oracle.com/javase/8/docs/api/index.html
JComponent类的一些常用方法:
void setFont(Font font);//设置字体的大小和格式
/*
Font类是用于设置图形y用户界面的字体样式的,包括字体l类型,字体风格,字号大小等
//构造方法
public Font(String familyName,int style,int size)
1.familyName是字体的类型:宋体,仿宋,Times New Roman等
2.style:
Font.PlAIN//普通
Font.BOLD//加粗
Font.ITALIC//斜体
Font.BOLD+Font.ITALIC//粗斜体
3.size为字体大小
在原先字体上更改属性
Font driveFont(String str)
Font driveFont(float size)
Font driveFont(int style)
Font driveFont(int style, float size)
*/
void setForeGround(Color fg);//设置前景(字体颜色)
void setBackGround(Color bg);//设置背景
void setVisible(boolean visible);//组件是否可见
//通常放在代码最后,这样你添加的组件才会显示出来,不然一开始设为true,显示后后面的组件就显示不出来
void setOpaque(boolean isOpaque);//true为设置控件不透明,false设置控件透明
void setPreferredSize(Dimension d);//设置首选大小
void setMinimunSize(Dimension d);//设置组件的最小大小
void setMaximumSize(Dimension d);//设置组件的最大大小
abstract FontMetrics类:
//构造方法
protected FontMetrics(Font font)
FontMetrics fm = g.getFontMetrics(Font font)
//常用方法
int getLeading()
int geiHeight()
int getAscent()
int getDescent()
int stringWidth()
**Font的size会近似等于ascent+descent**
JFrame类:
常用方法:
//默认布局为BorderLayout
//JFrame自带的面板的布局为BorderLayout
JFrame();
JFrame(String title);//构造方法
void setTitle(String title);
void setSize(int weight,int height);
void setSize(Dimension d);
void setVisible(boolean);//默认为false
void setIconImage(Image);//窗口最小化时,把一个image对象用作图标
void setLocation(int x,int y);//设置在屏幕中的位置,默认在屏幕左上角
void setLocation(Point p);
void setBounds(int x,int y,int width,int height);//设置位置和窗口大小
void setBounds(Rectangle rect);
void setResizable(boolean resizable);//窗口是否可放大缩小
Point getLocationOnScreen();//获取窗口相对于屏幕左上角的位置
Point getLocation();//获取相对于父级窗口的位置(通常都为屏幕)
void setLocationRelativeTo(Component comp);//设置窗口的相对位置
/*
如果comp全部都在屏幕中,则放在其中间
如果有部分不再屏幕,则放在其最靠近中间的一侧
如果comp为null,则放在屏幕中间
*/
void setDefaultCloseOperation(JFrame.EXXIT_ON_CLOSE);//设置关闭键的作用
/*
0或者DO_NOTHING_ON_CLOSE为不起任何作用
1或者HIDE_ON_CLOSE为最小化窗口
2或者DIPOSE_ON_CLOSE隐藏窗口,释放窗口所占资源
3或者EXIT_ON_CLOSE退出应用程序
*/
void setAlwaysOnTop(boolean alwaysOnTop);//设置是否置顶显示
void dispose();//销毁窗口
void pack();//调整窗口的大小,适合q其子组件d的首选d大小和布局.
/*
单独使用setSize()时,不能使用pack(),否则pack()会自动适配
单独使用setPreferredSize()时,设置的大小无效,必须在后面添加pack()使用.
*/
void setPreferredSize(new Dimension(int width,int height));
/*
setPreferredSize()与setSize的区别:
没有使用layout manager时用setSize,使用了就用setPreferredSize()
*/
boolean isShowing();//窗口是否显示
void setContentPane(Container contentpane);//设置窗口的内容面板
Container getContentPane();//获取窗口的内容面板
JPanel类(面板):
//默认布局为FlowLayout()
JPanel();
JPanel(LayoutManager layout)//创建指定布局管理器的面板
void add(Component comp);//添加组件
在各布局类中可使用SetPreferredSize(new Dimension())来设置组件大小
FlowLayout类:
流布局在方向流中排列组件,非常类似于段落中的文本行。流向由容器的componentOrientation 属性(该属性属于Component)决定,可能是以下两个值之一:
ComponentOrientation.LEFT_TO_RIGHT
ComponentOrientation.RIGHT_TO_LEFT
流布局通常用于排列面板中的按钮。它水平排列按钮,直到同一条线上没有更多按钮。线对齐由align 属性决定。可能的值是:
FlowLayout.LEFT : 左对齐
FlowLayout.CENTER : 居中对齐(默认)
FlowLayout.RIGHT : 右对齐
FlowLayout.LEADING : 与容器方向的开始边对齐,例如,对于从左到右的方向,则与左边对齐
// 默认 居中对齐的,水平和垂直间隙是 5 个单位
FlowLayout()
// 指定对齐方式,默认的水平和垂直间隙是 5 个单位
FlowLayout(int align)
// 指定对其方式,水平 和 竖直 间隙
FlowLayout(int align, int hgap, int vgap)
GridLayout类:
网格布局管理器,将容器划分为n行m列,每一格都能存放一个组件.
// 默认构造, 每个组件占据一行一列
GridLayout()
// 指定 行数 和 列数 的网格布局
GridLayout(int rows, int cols)
// 指定 行数 和 列数 的网格布局, 并指定 水平 和 竖直 网格间隙
GridLayout(int rows, int cols, int hgap, int vgap)
BoxLayout类:
箱式布局管理器,常与容器Box一起出现.
//vbox的对齐方式为中间对齐
//可通过setMaximumSize(new Dimension())来设置大小,setSize不可用
BoxLayout(Container target,int axis);
/*
target需要布置的容器
axis可以为:
X_AXIS:指定组件从左到右
Y_AXIS:指定组件从上到下
LINE_AXIS:指定组件应按照目标容器的ComponentOrientation属性确定的文本方向布局
PAGE_AXIS:指定组件应按照目标容器的ComponentOrientation属性确定的行在页面中流动的方向布局
*/
//Box
// 创建一个水平箱容器
Box hBox = Box.createHorizontalBox();//创建的水平容器,居中显示
// 创建一个垂直箱容器
Box vBox = Box.createVerticalBox();
// 创建一个 水平方向胶状 的不可见组件,用于撑满水平方向剩余的空间(如果有多个该组件,则平分剩余空间)
Component hGlue = Box.createHorizontalGlue();
// 创建一个 垂直方向胶状 的不可见组件,用于撑满垂直方向剩余的空间(如果有多个该组件,则平分剩余空间)
Component vGlue = Box.createVerticalGlue();
// 创建一个 水平和垂直方向胶状 的不可见组件,用于撑满水平和垂直方向剩余的空间(如果有多个该组件,则平分剩余空间)
Component glue = Box.createGlue();
// 创建一个 固定宽度 的不可见组件(用于水平箱)
Component hStrut = Box.createHorizontalStrut(int width);
// 创建一个 固定高度 的不可见组件(用于垂直箱)
Component vStrut = Box.createVerticalStrut(int height);
// 创建 固定宽高 的不可见组件
Component rigidArea = Box.createRigidArea(new Dimension(int width, int height));
CardLayout类:
卡片布局管理器,它将容器的每个组件都看作一张卡片,一次只能看到一张卡片.
CardLayout();
CardLayout(int hgap,int vgap);//创建一个指定水平/垂直间距大小的卡片布局
void first(Container parent);//显示第一张卡片
void last(Container parent);//显示最后一张卡片
void next(Container parent);//显示下一张卡片
void previous(Container parent);//显示上一张卡片
void show(Container parent,String name);//显示指定名称的组件,可同时添加组件的名称
BorderLayout类:
边界布局管理器,它把容器分为5个区域(东西南北中),每个区域放置一个组件:
BorderLayout.NORTH;
BorderLayout.WEST;
BorderLayout.SOUTH;
BorderLayout.EAST;
BorderLayout.center;
BorderLayout();//构造一个组件之间没有间距的新边框布局
BorderLayout(int hgap,int vgap);//构造一个具有指定组件边距的边框布局
null布局类:
使用null布局,必须得为加入的组件设置大小和方位.
使用:
setBounds(int x,int y,int width, int height);
或者:
setLocation(int x,int y);
setSize(int width,int height);
相对路径与绝对路径:
ImageIcon类:
//构造方法:
ImageIcon(String filename)//从指定文件中查找图片
/*
当filename为相对路径时,要从工程目录下面开始写位置,一个包也是一个目录
*/
URL location =类名.class.getResource("path");//当前编译后class文件所在目录查找图片
ImageIcon(URL location)//从指定的url创建ImageIcon
//常用方法:
int getIconHeight();//
int getIconWidth();
Image getImage();//返回图标
void loadImage(Image images);//加载图像,仅在加载图像时返回
void setImage(Image images);//设置此图标显示的图像
//方法1
URL url = Main.class.getResource("/images/class5.jpg");
Icon image = new ImageIcon(url);
//方法2
Icon image = new ImageIcon("./src/images/class5.jpg");
Image类:
//构造方法
Image(String url);//从指定url中加载图像
BufferedImageImage image = ImageIO.read(url);
BufferedImage Image image = ImageIO.read(File);
JLabel类:
标签,主要用于展示文本或者图片,也可以同时显示文本和图片
//JLabel创建的标签会把该容器的行全部填满,宽度会随着字体的大小而发生变化,或者会把列全部填满,长度随字体大小发生变化
//构造方法
JLabel()//
JLabel(String text)//显示的文本
JLabel(String text,int horizontalAlignment)//指定文本,指定标签内容对齐方式
JLabel(Icon image)//设置图片
JLabel(Icon image,int horizontalAlignment)//指定图片,指定对齐方式
JLbael(String text,Icon image,int horizontalAlignment)
//常用方法
void setText(String text);//设置文本
void setIcon(Icon icon);//设置图片
void setHorizontalTextPosition(int textPosition);//设置文本相对于图片的位置,默认在图片右边并垂直居中
void setVerticalTextPosition(int textPosition);//设置文本相对于图片的位置
void setVerticalAlignment(int alignment);//设置标签内容的对齐方式,默认左对齐,并垂直居中
/*
alignment值为
SwingConstants的LEFT, CENTER, RIGHT, LEADING,或 TRAILING
*/
void setHorizontalAlignment(int alignment);//设置沿x轴的对齐方式
void setIconTextGap(int iconTextGap);//设置图片和文本之间的间隙
具体实例:
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setSize(800,600);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
LayoutManager layout = frame.getLayout();
if(layout instanceof BorderLayout)//证明JFrame的默认布局为BorderLayout
{
System.out.println("我是一个边界布局");
}else
{
System.out.println("我不是一个边界布局");
}
JLabel label1 = new JLabel("dj--top");
label1.setFont(new Font("宋体",Font.PLAIN,40));
label1.setOpaque(true);
label1.setBackground(Color.red);
label1.setHorizontalAlignment(SwingConstants.LEFT);//可以选择left,right,leading,trailing来改变
JLabel label2 = new JLabel("dj--left");//
label2.setOpaque(true);
label2.setBackground(Color.black);
label2.setFont(new Font("宋体",Font.PLAIN,40));
label2.setVerticalAlignment(SwingConstants.BOTTOM);//可以选择center,top,bottom,来改变位置
JLabel label3 = new JLabel("dj--down");
label3.setBackground(Color.green);
label3.setOpaque(true);
label3.setFont(new Font("宋体",Font.PLAIN,40));
label3.setHorizontalAlignment(SwingConstants.LEFT);
JLabel label4 = new JLabel("dj--right");
label4.setOpaque(true);
label4.setBackground(Color.yellow);
label4.setFont(new Font("宋体",Font.PLAIN,40));
label4.setVerticalAlignment(SwingConstants.TOP);
JLabel label5 = new JLabel("dj--center");
label5.setOpaque(true);
label5.setBackground(Color.blue);
label5.setFont(new Font("宋体",Font.PLAIN,40));
label5.setHorizontalAlignment(SwingConstants.LEFT);
frame.add(label1,BorderLayout.NORTH);
frame.add(label2,BorderLayout.WEST);
frame.add(label3,BorderLayout.SOUTH);
frame.add(label4,BorderLayout.EAST);
frame.add(label5,BorderLayout.CENTER);
frame.setVisible(true);
}
JLabel实现覆盖:
问题:
向容器内先添加的JLabel会被先显示出来,如果先添加的JLabel的面积大于第二次添加的JLabel的面积,那么第二个JLabel将不会被显示
解决办法:
改变两次添加JLbael的顺序
frame.setLayout(null);
//label1
JLabel label1 = new JLabel("一");
label1.setFont(new Font("宋体",Font.PLAIN,40));
label1.setBackground(Color.green);
label1.setOpaque(true);
label1.setBounds(0,0,frame.getWidth(),frame.getHeight());
label1.setHorizontalAlignment(SwingConstants.CENTER);
//label2
JLabel label2 = new JLabel("二");
label2.setFont(new Font("宋体",Font.PLAIN,40));
label2.setBackground(Color.orange);
label2.setOpaque(true);
label2.setBounds(0,0,50,50);
label2.setHorizontalAlignment(SwingConstants.CENTER);
frame.add(label2);
frame.add(label1);
frame.setVisible(true);
运行结果:
JTextField(文本框)
构造方法
JTextField()
JTextField(String text)
JTextField(int colums)//选定宽度列数
JTextField(String text,int colums)//
//常用方法于JTextArea类似
JTextArea(文本区域)
//构造方法
JTextArea()
JTextArea(String text)
JTextArea(int rows,int columns)//默认可见的行数和列数
JTextArea(String text,int rows,int columns)
//常用方法
void setLineWrap(boolean wrap)//是否自动换行,默认为false
/*
当为false时,输入到末端时会拉长文本框,当为true,会自动到下一行
*/
void setWrapStyleWord(boolean word)
//如果为 true,则将在单词边界(空白)处换行; 如果为 false,则将在字符边界处换行。默认为 false
String getText()//获取文本
void append(String str)//追加文本到末尾
void replaceRange(String str,int start,int end)//替换部分文本
void setText(String text)
void setFont(Font font)
void setForeground(Color fg)
int getLineCount()//获取内容的行数,以换行符来计算(满行自动换下一行,不算增加一行)
int getLineEndOffset(int line)//获取指定行(行数从0开始)的行尾(包括换行符)在全文中的偏移量
int getLineOfOffset(int offset)//获取指定偏移量所在行数
void setCareColor(Color c)//设置光标颜色
void setSelectionColor(Color c);//设置选中部分背景颜色
void setSelectedTextColor(Color c);//设置选中部分颜色
void setDisabledTextColor(Color c)//设置不可用时颜色
void setEditable(boolean b)//设置是否可编辑
boolean isFocusOwner()//判断是否拥有焦点
void setEnabled(boolean b)//设置组件是否可用
//赋值粘贴
void setSelectionStart(int start)//设置光标开始的位置
void setSelectionEnd(int end)//设置光标结束的位置
void copy()//赋值选中文本
void cut()//剪切选中文本
void past()//粘贴文本
JCheckBox(复选框)
//构造方法
JCheckBox()//默认不选中
JCheckBox(String text)
JCheckBox(String text,boolean selected)
//常用方法
void setText(String text)
void setFont(Font font)
void setForeground(Color c)
void setSelected(boolean b)//设置是否选中
boolean isSelected//返回选中状态
void setEnabled(boolean enable)//设置是否可用
void setIconTextGap(int iconTextgap)//设置图标和文本的间距
//监听器
void addChangeListener(ChangeListener l)
JComboBox(下拉列表):
//JComboBox是一个泛型,当它的item类型为一个对象时,需要重写toString方法
//构造方法
JComboBox()
JComboBox(ComboBoxModel model)
JComboBox(Object[] items)
JComboBox(Vector<?> items)
//常用方法
void setSelectedIndex(int index)//设置选中的索引
int getSelectedIndex()//获取当前选中的索引
Object getSelectedItem()//获取当前选中的数据项
void setModel(ComboBoxModex<?> model)//设置选项数据模型
ComboBoxModel<?> getModel()//
void addItemListener(ItemListener listener)//
void setEnabled(boolean b)//是否可用
JMenuBar菜单栏:
JMenuBar//表示一个菜单栏
JMenu//表示菜单栏上的一个一级菜单
JMenuItem,JCheckBoxMenuItem,JRadioButtonMenuItem
/*
表示一级菜单下的子菜单项,三者分别表示普通的子菜单,带复选框的子菜单,带单选按钮的子菜单,注意:JMenu继承JMenuItem,所以一个JMenu也可以当作是一个2级子菜单项,通过JMenu和JMenuItem之间的嵌套可以实现多级子菜单效果
*/
//JMenuItem构造方法
JMenuItem()
JMenuItem(String text)
JMenuItem(Icon icon)
JMenuItem(String text,Icon icon)
//JMenuItem常用方法
void setText(String text)//设置菜单显示的文本
void setIcon(Icon icon)//设置菜单显示的图标
void setAccelerator(KeyStroke keyStrock)//设置修改键,使用键盘快捷键直接触发菜单项的动作
void addActionListener(ActionListener a)//添加监听器
void setActionCommand(String actionCommand)//绑定菜单项的动作名称
JCheckBoxMenuItem,JRadioButtonMenuItem常用方法
void setSelected(bollean b)//设置复选框,单选框是否选中
boolean isSelected()//判断是否选中
void addChangeListener(ChangeListener l)//添加状态被改变的监听器
//JMenu常用方法
JMenuItem add(JMenuItem menuItem)//添加子菜单到JMenu中
void addSeparator()//添加子菜单分割线
Border(边框):
//BorderFactory中的静态方法
//空边框
static Border createEmptyBorder();//创建空白边框
static Border createEmptyBorder(int top,int left,int bottom,int right)//创建一个占空间但不绘制的边框,内边距效果
//线边框
static Border createLineBorder();
static Border createLineBorder(Color color,int thickness);//thickness为线宽
static Border createLineBorder(Color color,int thickness,boolean rounded)//rounded为是否有圆角
//标题边框
static TitleBorder createTitleBorder(String title);
static TitleBorder createTitleBorder(Border border)//border为在此边框上添加标题,可以为null
static TitleBorder createTitleBorder(Border border,String title)
static TitleBorder createTitleBorder(Border border,String title, int titleJustification,int titlePosition)
/*
titleJustification为标题对齐方式:
TitledBorder.Left(center,right,leading,trailiing,default_justification(leading))
titlePosition为标题显示的位置(相对于边框的纵向位置)
TitledBorder.ABOVE_TOP(top,bellow_top,above_bottom,bottom,,bellow_bottom,default_position(顶部))
*/
static TitleBorder createTitleBorder(Border border,String title,int titleJustification,int titlePosition,Font titleFont)
static TitleBorder createTitleBorder(Border border,String title,int titleJustification,int titlePosition,Font titleFont,Color titleColor)
//复合边框
static Border createCompoundBorder(Border outside,Border inside)
//边距和填充
//使用BorderFactory.createEmptyBorder(int top,int left,int bottom,int right)来实现边距和填充效果,当给某个组件加上空白边框时,你设置了组件的背景颜色,空白边框会在背景颜色内部
给组件添加鼠标监听事件:
label1.addMouseListener(new MouseListener()
{
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
//当鼠标点击
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
//当鼠标按下
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
//当鼠标松开
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
//当鼠标进入某区域
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
//当鼠标离开某区域
}
});
Graphics类:
graphics没有公有的构造函数,可采用以下三种方式实例化:
1.在窗体或控件的Paint事件中接受对图形对象的引用,作为PaintEventArgs的一部分,在为控件创建绘制代码时,通常会使用此方法来获取对图形对象的引用
private void Form1_Paint(object sender,System.Windows.Forms.PaintEventArgs pe)
{
Graphics g = pe.Graphics;
}
2.调用某控件或窗体的CreateGraphics方法以获取对graphics对象的引用,该对象表示该控件或窗体的绘图图面.
Graphics g = this.CreateGraphics();
3.由从Image继承的任何对象创建Graphics对象
Bitmap myBitmap = new Bitmap(@"C:\Documents andSettings\Joe\Pics\myPic.bmp");
Graphics g = Graphics.FromImage(myBitmap);
//常用方法
void drawLine(int x1,int y1,int x2,int y2);//在点(x1,y1)和点(x2,y2)之间画线段
void drawRect(int x,int y,int width,int height);//画普通矩形
void fillRect(int x,int y,int width,int height);//填充矩形
void setColor(new Color(int r,int g,int b));//设置颜色
void drawRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight);//画圆角矩形
void fillRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight);//填充圆角矩形
void draw3DRect(int x, int y, int width, int height, boolean raised);//画一个3d矩形,raised为false凹面,true为凸面
void fill3DRect(int x,int y,int width,int height,boolean raised);//填充3d矩形
void drawOval(int x,int y,int width,int height);//画一个椭圆,画的椭圆,刚好能放入长为width宽为height坐标为(x,y)的矩形中
void fillOval(int x,int y,int width,int height);//填充一个椭圆
//矩形中心坐标(x,y)长度为width,宽度为height,从矩形的右下角开始画,画一个对应x投影为width/2,对应y投影为height的弧长,,旋转角度为从startAngle开始旋转arcAngle角度的弧长(正值代表逆时针旋转,负值瞬时间旋转)
void drawArc(int x,int y,int widht,int height,int startAngle,int arcAngle);
void fillArc(int x,int y,int widht,int height,int startAngle,int arcAngle);
//xPoints储存多边形每个点的x坐标,yPoints储存每个点的y坐标,nPoints代表几条边
void drawPolygon(int[] xPoints,int[] yPoints,int nPoints);
void fillPolygon(int[] xPoints,int[] yPoints,int nPoints);
void drawString(String str,int x,int y);//画字符串
//ImageObserver observer – 一个实现ImageObserver 接口的对象。它将该对象登记为一个图像观察者,因此当图像的任何新信息可见时它被通知。大多组件可以简单的指定this。
boolean drawImage(Image img, int x, int y, ImageObserver observer)
boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
//擦除矩形块
void clearRect(int x,int y,int width,int height);//擦除指定矩形
//限定作图显示区域,限制图形在指定区域内的显示,超出部分不显示。多个限制区有覆盖时,得到限制区域的交集区域。
void clipRect(int x,int y,int widht,int height);
//复制图形,dx代表原图像向右(dx>0)或向左偏移(dx<0),向上(dy<0)或者向下偏移(dy>0)
void copyArea(int x, int y, int width, int height, int dx, int dy);//
Graphics2D:(是Graphics的子类)
//构造方法
abstract void setStroke(Stroke s)//设置线形
abstract void setPaint(Paint paint)//设置填充
Stroke(接口):
//BasicStroke实现了stroke这个接口,用于定义线条的特征
//构造方法
BasicStroke()//构造一个所有属性为默认值的BasicStroke对象
BasicStroke(float width)//使用指定的线宽
BasicStroke(float width, int cap, int join)//使用指定的线宽和cap,join
/*
//CAP_ BUTT,CAP_ROUND,CAP_SQUARE表示不同的线端
//JOIN_ROUND,JOIN_BEVEL,JOIN_MITER表示连接处的形状
*/
BasicStroke(float width, int cap, int join, float miterlimit)
/*
miterlimit
你使用JOIN_MITER这种策略来表示连接处形状的时候,由于两根线的连接角度可能很小,那么,就会导致延伸出来的那个角特别长!本参数用来限制那个尖角的最大长度!当你使用JOIN_MITER策略的时候,本参数必须大于1,本参数的默认值是10.0f 。
*/
BasicStroke(float width, itn cap, int join, float miterlimit, float[] dash, float dash_phase)
/*
dash[] 用来定义线和缺口的长度
dash表示从一定的偏移量开始画
*/
Point2D类:
//内部类:
static class Point2D.Double()
//构造函数
Point2D.Doouble()
Point2D.Double(double x,double y)
static class Point2D.Float()
//构造函数
Point2D.Float()
Point2D.Float(float x,float y)
//构造函数
protected Point2D()
Rectangle类:
//构造方法
Rectangle()//默认位置为(0,0),长宽为0
Rectangle(Dimension d)
Rectangle(int width,int height)
Rectangle(int x,int y, int width, int height)
Rectangle(Point p, Dimension d)
Rectangle(Rectangle r)
//子类Rectangle2D
protected Rectangle()//构造方法
//内部类
static class Rectagle2D.Double(double x,double y, double width, double height)
static class Rectangle2D.Float(float x, float y, float width, float height)
Paint接口:
//渐变填充
//LinearGradientPaint类实现了该接口(渐变色)
//构造方法
LinearGradientPaint(float startX,float startY, float endX,float endY,float[] fractions, Color[] colors)
//float[] fractions为关键点位的位置单位百分号
LinearGradientPaint(float sx,flaot sy, float ex, float ey, float[] fractii=ons, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors)
//辐射填充
//构造方法
RadialGradientPaint(float cx,float cy,float radius,float[] fractions, Color[] colors)
RadialGradientPaint(Point2D center,float radius, float[] fractions, Color[] colors)
//纹理填充(图片填充)
//构造方法
TexturePaint(BufferedImage image, Rectangle2D anchor)
Shape接口:
//Ellipse2D椭圆
protected Ellipse2D()
//内部类
static class Ellipse2D.Double
Double()
Double(double x,double y, double w, double h)
static class Ellipse2D.Float
Calendar类:
//构造方法
protected Calendar()
protected Calendar(TimeZone zone, Locale aLocale)
//常用方法
int get(int field)//返回一个你要求的字段值
/*返回field
field:
MONTH YEAR DATE HOUR MINUTE MILLIS
DAY_OF_WEEK HOUR_OF_DAY
MONTH是从0开始
DAY_OF_WEEK中sunday是1Monday为2
*/
void set(int field, int value)//给指定字段设置相应的值
void set(int year, int month, int date)//设置时间,可以保留先前的时间
void set(int year, int month, int date, int hourOfDday, int minute)
void set(int year, int month, int date, int hourOfDay, int minute, int second)
void add(int field, int amount)
void roll(int field, int amount)//roll方法计算date时是在本月循环,
int getActualMaximum(int field)//返回该字段的最大值当字段为DAY_OF_MONTH时,返回该月最大的天数
SimpleDateFormat类:
//构造方法
SimpleDateFormat()
SimpleDateFormat(String pattern)
/*pattern:
yyyy-MM-dd'T'HH:mm:ss
*/
//常用方法
Date parse(String text)//将字符串解析成Date对象
StringBuffer format(Date date, String toAppendTo, FieldPosition pos)//得到时间
Date类:
//构造方法
Date(long date)
Swing程序发布:
导出jar包,将jre目录放置在jar包目录下,将run.bat放置在jre包目录下,注意更改run.bat中的路径时不能含有中文.