最近在学Java Swing,图形界面学着还是蛮好玩的,可以自己写点东西玩玩,下面来简要介绍下swing常用方法。
先说说常用方法,后面有实例代码,也可以直接看代码。
窗口
JFrame():创建一个无标题窗口。
JFrame(String s):创建一个标题为s的窗口。
setBounds(int x,int y,int wigth,int height):设置窗口初始位置x,y,宽高width,height。
setSize(int width,int height):设置窗口宽高width,height。
setLocation(int x,int y):设置窗口初始位置x,y,默认(0,0)。
setVisible(boolean x):设置窗口是否可见,默认不可见。
setResizable(boolean x):设置窗口是否可以调整大小,默认可以调整。
dispose():撤销窗口,并释放当前窗口所使用的资源。
setExtendedState(int state):设置窗口的扩展状态。
pack():调整窗口的大小, 以适合其子组件的首选大小和布局。
setIconImage(Image image):设置窗口的图标。
setLocationRelativeTo(Component comp):comp 为 null, 表示将窗口放置到屏幕中心。
setDefaultLookAndFeelDecorated(true)
在创建窗口前使用JFrame.setDefaultLookAndFeelDecorated(true),会使窗口的外观更漂亮。
这个方法要写在new JFrame()对象之前。
JFrame test = new JFrame("testone");
JFrame.setDefaultLookAndFeelDecorated(true); //错误
JFrame.setDefaultLookAndFeelDecorated(true); //正确
JFrame test = new JFrame("testone");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
在写完界面的时候千万要注意写一个关闭窗口的方法,setDefaultCloseOperation(int operation):该方法用来设置单击窗口右上角的关闭图标后,程序会做出怎样的处理。方法中的参数解释如下:
- DO_NOTHING_ON_CLOSE:不执行任何操作;
- HIDE_ON_CLOSE:隐藏当前窗口,此时没有关闭程序。
- DISPOSE_ON_CLOSE:隐藏当前窗口,并释放窗体中占用的其他资源。
- EXIT_ON_CLOSE:结束窗口所在的应用程序。
默认情况下,该值被设置为 HIDE_ON_CLOSE。
使用时也可用数字0、1、2、3代替上述四个参数,如:
setDefaultCloseOperation(3) 与 setDefaultCloseOperation(EXIT_ON_CLOSE)等同。
一般情况下使用setDefaultCloseOperation(3)即可。
菜单
窗口中的菜单是我们所熟悉的组件。菜单放在菜单条里,菜单项放在菜单里。
JMenuBar():创建一个菜单条。
setJMenuBar(JMenuBar bar):将菜单条加入窗口顶端。只能向窗口添加一个菜单条。
JMenu():创建无标题的菜单。
JMenu(String s):创建标题为s的菜单。
add(JMenuItem item):向菜单添加菜单项。可以向菜单添加子菜单。
getItem(int x):获得指定索引处的菜单项。
getItemCount():获得菜单项的数目。
JMenuItem(String s):创建标题为s 的菜单项。
JMenuItem(String s,Icon icon):创建标题为s的,图标为icon的菜单项。
setEnabled(boolean x):设置当前菜单项是否可以被选择。
getText():获得菜单项的名字。
setText(String s):设置菜单项的名字为指定s。
setAccelerator(KeyStroke keyStroke):设置菜单项快捷键。
为了使菜单项有一个图标,可以用图标类 Icon声明一个图标,然后使用其子类ImageIcon类创建一个图标,如
Icon icon = new ImageIcon("a.gif");
文本框
JTextField():创建文本框。
JTextField(int x):创建长度为x的文本框。
JTextField(String s):创建文本框,文本框初始内容为s。
JPasswordField():和JTextField()用法相同,但是输入的信息会显示为'·'号,可以用于输入密码。
setText(String s):设置文本框内容为s。
getText():获取文本框内容。
setEditable(boolean x):设置文本框的可编辑性,默认可编辑。
setHorizontalAlignment(int x):设置文本框文本的对齐方式。
addActionListener(ActionListener):向文本框添加动作监视器。
removeActionListener(ActionListener):移除动作监视器。
实例代码
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class GuiTest {
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true); //使窗口美观,创建窗口前使用
GuiWm test = new GuiWm("test",600,300,240,320); //创建对象test
JTextField text = new JTextField(10); //创建文本框text
text.setBounds(50,20,130,25); //设置文本框位置,大小
test.add(text); //添加文本框到test
}
}
//使用JFrame扩展一个子类GuiWm
class GuiWm extends JFrame{
JMenuBar mb; //声明菜单条
JMenu me1,me2,me3,me4; //声明菜单
JMenuItem i1,i2,i3,i4,i5,i6; //声明菜单项
GuiWm(){}
GuiWm(String s,int x,int y,int w,int h){
init(s);
setBounds(x,y,w,h); //设置窗口位置、大小
setVisible(true); //设置窗口可见
setDefaultCloseOperation(3); //设置窗口关闭方式
}
void init(String s) {
setTitle(s); //设置窗口标题
//以下为创建菜单条、菜单、菜单项
mb = new JMenuBar();
me1 = new JMenu("查看");
me2 = new JMenu("界面");
me3 = new JMenu("帮助");
i1 = new JMenuItem("简单型");
i2 = new JMenuItem("标准型");
i3 = new JMenuItem("键盘输入");
i4 = new JMenuItem("鼠标输入");
i5 = new JMenuItem("help");
i6 = new JMenuItem("关于");
me1.add(i1); //向菜单添加菜单项
me1.addSeparator(); //设置分隔线,也可以不设
me1.add(i2);
me2.add(i3);
me2.addSeparator();
me2.add(i4);
me3.add(i5);
me3.addSeparator();
me3.add(i6);
mb.add(me1); //添加菜单到菜单条
mb.add(me2);
mb.add(me3);
setJMenuBar(mb); //添加菜单条到窗口
}
}
先写这些,持续更新中~