大家好,欢迎来到IT知识分享网。
目录
java图形化界面设计——容器(JFrame)
JFrame的使用
创建JFrame对象
JFrame jf = new JFrame(“我是标题”);
jf.setTitle(“标题”); //标题设置的两种方式
jf.setSize(1000,600); //窗口大小
jf.setLocation(100,100); //窗口出现在屏幕上的位置
setSize和setLocation可以合并为一个即setBounds() jf.setBounds(100,100,1000,600);
jf.setVisible(true); // 设置窗口默认是否显示
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置关闭方式
JDialog
JDialog 是从一个窗体弹出来的另外一个窗体,和JFrame类似可当成一个JFrame使用,但是必须从属于JFrame
构造函数:
JDialog();
JDialog(Frame f); 指定父窗口
JDialog(Frame f,String title); 指定父窗口+标题
常用面板JPanel
JPanel p = new JPanel(100,100,500,300) //生成面板
JPanel p = new JPanel(new FlowLayout()) //布局管理器
将面板添加进另外的容器中
容器名.add(p);
JScrollPane
JScrollPane是带滚动条的面板,在碰到需要将一个大的组件放到一个较小的空间的时候,即使用该面板其内只能添加一个组件,如果需要将多个组件添加到一个JScrollPane中时,需要先将需要添加的组件添加到JPanel中,再将JPanel添加进JScrollPane
JScrollPane jp = new JScrollPane(组件)
设置容器:
为JFrame设置一个面板容器,即可以往面板容器中添加组件
jf.setContentPane(jp);
标签组件JLabel
JLabel作用:显示文本或提示信息
构造函数:
new JLabel();
new JLabel(Icon icon); //设置图标
new JLabel(Icon icon,int aligment); //设置图标+水平对齐方式
new JLabel(String str,int aligment); //设置文本+水平对齐方式
SwingConstants.LEFT 左对齐
SwingConstants.CENTER 居中对齐
SwingConstants.RIGHT 右对齐
new JLabel(String str,Icon icon,int sligment); //设置文本+图标+水平对齐
例如:
设置字体,风格,字号:
jl.setFont(new Font(“微软雅黑”,Font.PLAIN,14));
设置文字颜色:使用RGB颜色,百度RGB颜色表
jl.setForeground(new Color(255,255,255));
jl.setHorizontalAlignment(SwingConstants.CENTER);
JButton
作用:按钮
构造方法:
其他方法:
单选按钮组件类
单选按钮组件类: JRadioButton ButtonGroup
说明:JRadioButton是一个单选按钮,需要将单选按钮加入到按钮组ButtonGroup中
构造方法:
复选组件框类 JCheckBox
构造方法:
下拉列表组件类 JComboBox
JComboBox<> jcb = new JComboBox<>();
JComboBox是一个泛型,参数类型T表示的是数据项的类型
构造方法:
方法:
菜单栏:
步骤:
文本组件类: JTextField
构造函数:
其他方法:
密码框组件类:JPasswordField
构造函数:
其他方法:
setEchoChar(‘*’); //设置回显字符
文本域组件类: JTextArea
构造函数:
其他方法:
布局方式:
流布局 FlowLayout
所有组件像流一样,一个一个排放,排满了一行之后排下一行,默认情况下,每个组件是居中排列的但也可以设置
构造方法:
通过setLayout函数来设置布局
例如:jf.setLayout(new FlowLayout(FlowLayout.LEFT));
边界布局BorderLayout
边界布局是默认的布局管理方式
边界布局将容器分成了
构造方法:
jf.setLayout(new BorderLayout());
如: jf.add(button1,BorderLayout.CENTER);
网格式布局管理器 GridLayout
网格布局是将容器划分为网格,所有的组件都按照行和列排列,网格的个数由行数和列数决定每个组件会填满空格,改变容器的大小,组件的大小也会相应的随之改变
构造方法:
手工布局
即不使用布局器
常用的事件监听器:
一个事件模型中有三个对象:事件源,事件,以及监听程序
事件监听机制:
使用步骤:
两种监听器:
public void focusLost(FocusEvent e){
//失去焦点的时候
……………..
}
public void focusGained(FocusEvent e){
//获取焦点的时候
……………..
}
});
案列: button1.addActionListener(new AbstractAction(){
@Override
public void actionPerformed(ActionEvent e) {
jta.append(“年轻人好自为之”);
}
});
事件处理详解:
1.添加一个监听器类,实现ActionListener接口
class MyActionListener extends ActionListener{}
示例代码
//创建JFrame窗口对象 JFrame jf = new JFrame("我是标题"); jf.setBounds(100,100,1000,600); //面板 JPanel jp = new JPanel(new FlowLayout()); jf.add(jp); //标签组件 JLabel jl = new JLabel("我是提示文本信息",SwingConstants.CENTER); jl.setText("账号"); jp.add(jl); //按钮组件 JButton jb = new JButton("按钮1"); jb.setBounds(100,100,200,100); jb.setEnabled(true); jb.setBorderPainted(true); jp.add(jb); //单选按钮组件 JRadioButton jrb1 = new JRadioButton("单选按钮组件1_男"); JRadioButton jrb2 = new JRadioButton("单选按钮组件2_女"); ButtonGroup bg = new ButtonGroup(); bg.add(jrb1); bg.add(jrb2); jp.add(jrb1); jp.add(jrb2); //复选组件框 JCheckBox jcb1 = new JCheckBox("音乐",false); JCheckBox jcb2 = new JCheckBox("视频",false); JCheckBox jcb3 = new JCheckBox("游戏",false); JCheckBox jcb4 = new JCheckBox("网课",true); jp.add(jcb1); jp.add(jcb2); jp.add(jcb3); jp.add(jcb4); //下拉列表 String[] item = {"--请选择你的学历--","高中","专科","本科","研究生"}; JComboBox jcbb = new JComboBox(item); jcbb.addItem("博士"); //与在数组中添加列表相同 jp.add(jcbb); //菜单 JMenuBar jmb = new JMenuBar(); //菜单条 JMenu jm1 = new JMenu("菜单1"); //菜单 JMenu jm2 = new JMenu("菜单2"); //菜单 JMenuItem jmi1 = new JMenuItem("二级菜单1"); //菜单项 JMenuItem jmi2 = new JMenuItem("二级菜单2"); //菜单项 JMenuItem jmi3 = new JMenuItem("二级菜单3"); //菜单项 jm1.add(jmi3); //给菜单1添加菜单项 jm2.add(jmi1); //给菜单2添加菜单项 jm2.add(jmi2); jmb.add(jm1); //将菜单添加进菜单条 jmb.add(jm2); jp.add(jmb); //文本组件 JTextField jtf = new JTextField("请输入账号",20); jp.add(jtf); //密码框组件 JPasswordField jpw = new JPasswordField("请输入密码",20); jpw.setEchoChar('*'); jp.add(jpw); //文本域组件 JTextArea jta = new JTextArea("请输入文字",10,10); jta.setLineWrap(true); jp.add(jta); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/129446.html