JavaSE14—窗体程序开发(下)
1. 基础组件(续)
1) 文本控件
1. 单行文本框控件
Swing中的JTextField控件实现了单行文本框。JTextField类提供的常用构造方法。
JTextField jtext = new JTextField(列数);
2. 密码控件
JPasswordField组件实现了一个密码框,用来接收用户输入的单行文本信息。
JPasswordField类提供了setEchoChar()方法,用来改变密码框中的显示字符。
3. 文本域控件
JTextArea组件实现一个文本域,文本域可以接收用户输入的多行文本。创建之后,可以通过setLineWrap(boolean bool)方法设置文本是否自动换行,默认为false。
实例:创建窗体,在窗体中滚动面板,在面板中添加文本域控件,实现从文件中读取数据,显示在文本域中。
Swing提供了两种列表组件,分别为下拉列表框JComboBox与列表框JList
1. 列表框控件JList
使用数组作为构造方法时,首先需要创建列表项目的数组,然后再利用构造方法来初始化列表框:
String[] contents = {“”,””,””,””};
JList jl = new JList(contents);
在使用Vector向量对象作为构造方法的参数初始化JList组件,通常:
Vector contents = new Vector();
contents.add(“”);
contents.add(“”);
...
JList jl = new JList(contents);
实例:创建列表控件:
3) JComboBox类
JComboBox类是一个下拉列表框控件,具有下拉功能。下拉列表框还可以设置为可编辑状态,用户可以在选择框中输入相应的值。
使用方法和JList类似,不在赘述。
2. 综合实例
1. 制作不规则按钮:
要完成不规则按钮的制作,需要调用JButton类的setContentAreaFilled()方法与setBorder(Border border)方法,setContentAreaFilled()方法可以使按钮取消填充区域。
setContentAreaFilled(Boolean bool);
参数:
bool:如果为true,则表示填充内容区域,如果为false,则表示不填充内容区域。
setBorder(Border border);
参数:
border:要为此组件呈现的边框。
1. 基础组件(续)
1) 文本控件
1. 单行文本框控件
Swing中的JTextField控件实现了单行文本框。JTextField类提供的常用构造方法。
JTextField jtext = new JTextField(列数);
2. 密码控件
JPasswordField组件实现了一个密码框,用来接收用户输入的单行文本信息。
JPasswordField类提供了setEchoChar()方法,用来改变密码框中的显示字符。
3. 文本域控件
JTextArea组件实现一个文本域,文本域可以接收用户输入的多行文本。创建之后,可以通过setLineWrap(boolean bool)方法设置文本是否自动换行,默认为false。
实例:创建窗体,在窗体中滚动面板,在面板中添加文本域控件,实现从文件中读取数据,显示在文本域中。
package qijia.si; import java.io.BufferedReader; import java.io.FileReader; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; public class FieldDemo extends JFrame{ private JTextArea textArea; public FieldDemo(){ super(); getContentPane().setLayout(null); setBounds(100,100,378,311); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(0,0,370,277); getContentPane().add(scrollPane); textArea = new JTextArea(); scrollPane.setViewportView(textArea); String aline; try{ BufferedReader br = new BufferedReader(new FileReader("src/qijia/si/FieldDemo.java")); while((aline = br.readLine())!=null){ textArea.append(aline+'\n'); } br.close(); }catch(Exception e){ e.printStackTrace(); } } public static void main(String[] args){ FieldDemo fd = new FieldDemo(); fd.setVisible(true); } }2) 列表控件
Swing提供了两种列表组件,分别为下拉列表框JComboBox与列表框JList
1. 列表框控件JList
使用数组作为构造方法时,首先需要创建列表项目的数组,然后再利用构造方法来初始化列表框:
String[] contents = {“”,””,””,””};
JList jl = new JList(contents);
在使用Vector向量对象作为构造方法的参数初始化JList组件,通常:
Vector contents = new Vector();
contents.add(“”);
contents.add(“”);
...
JList jl = new JList(contents);
实例:创建列表控件:
package qijia.si; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; public class JListDemo extends JFrame{ private JList list; public JListDemo(){ super(); getContentPane().setLayout(null); setBounds(100,100,266,182); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JPanel panel = new JPanel(); panel.setLayout(null); panel.setBounds(0,0,262,151); getContentPane().add(panel); final JLabel label = new JLabel(); label.setText("爱好: "); label.setBounds(44,30,39,18); panel.add(label); final JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(92,28,100,105); panel.add(scrollPane); String[] like = {"读书","上网","旅游","游戏","听音乐"}; list = new JList(like); scrollPane.setViewportView(list); } public static void main(String[] args){ JListDemo jd = new JListDemo(); jd.setVisible(true); } }
3) JComboBox类
JComboBox类是一个下拉列表框控件,具有下拉功能。下拉列表框还可以设置为可编辑状态,用户可以在选择框中输入相应的值。
使用方法和JList类似,不在赘述。
2. 综合实例
1. 制作不规则按钮:
要完成不规则按钮的制作,需要调用JButton类的setContentAreaFilled()方法与setBorder(Border border)方法,setContentAreaFilled()方法可以使按钮取消填充区域。
setContentAreaFilled(Boolean bool);
参数:
bool:如果为true,则表示填充内容区域,如果为false,则表示不填充内容区域。
setBorder(Border border);
参数:
border:要为此组件呈现的边框。
package qijia.si; import java.net.URL; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class TestDemo extends JFrame{ public TestDemo(){ super(); getContentPane().setLayout(null); setBounds(100,100,182,144); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JPanel panel = new JPanel(); panel.setLayout(null); panel.setBounds(0,0,176,164); getContentPane().add(panel); URL url = getClass().getResource("pig.png"); ImageIcon imageIcon = new ImageIcon(url); final JButton button = new JButton(); button.setIcon(imageIcon); button.setBounds(61,10,46,46); button.setContentAreaFilled(false); button.setBorder(null); panel.add(button); final JLabel message = new JLabel(); message.setText("这是个不规则按钮"); message.setBounds(37,77,91,81); panel.add(message); } public static void main(String[] args){ TestDemo td = new TestDemo(); td.setVisible(true); } }
发表评论
-
JavaSE20—绘图
2011-05-18 20:10 1503JavaSE20—绘图 1. 绘制图形 Graphics类是 ... -
JavaSE19—Swing高级控件(下)
2011-05-15 17:28 1086JavaSE19—Swing高级控件(下) 1. 工具栏与对话 ... -
JavaSE18—Swing高级控件(上)
2011-05-12 22:22 1494JavaSE18—Swing高级控件(上) 1. 为窗体添加 ... -
JavaSE17—GUI事件
2011-05-08 20:52 1038JavaSE17—GUI事件处理机 ... -
JavaSE15—多线程
2011-05-03 19:10 827JavaSE15—多线程 1. 多线程简介 程序:程序是计算 ... -
JavaSE13—窗体程序开发(中)
2011-05-01 16:53 1131JavaSE13—窗体程序开发(中) 1、 布局方式 1) ... -
JavaSE12—窗体程序开发(上)
2011-04-29 16:59 1464JavaSE12—窗体程序开发 ... -
JavaSE11—网络编程初步
2011-04-29 16:58 937JavaSE11—网络编程初步 1. 背景知识 1) 端口 ... -
JavaSE 10 —IO流
2011-04-28 20:00 862JavaSE 10 —IO流 1.IO流简介 Java的输入 ... -
JavaSE09—Java类集框架
2011-04-26 19:32 834JavaSE09—Java类集框架 1. 类集接口 接口: ... -
JavaSE08—包,访问权限及异常处理
2011-04-26 19:31 630JavaSE08—包,访问权限 ... -
JavaSE07—Java常用类库
2011-04-26 19:30 627JavaSE07—Java常用类库 1. String类和S ... -
JavaSE06—类的其他问题
2011-04-26 19:28 664JavaSE06—类的其他问题 1. Objec ... -
JavaSE05—抽象类与接口
2011-04-26 19:27 619JavaSE05—抽象类与接口 1. ... -
JavaSE04—类的封装,继承与多态
2011-04-26 19:26 683JavaSE04—类的封装,继 ... -
JavaSE03—类和对象
2011-04-26 19:24 627JavaSE03—类和对象 1. ... -
Java SE02——数组
2011-04-26 19:23 628Java SE02——数组 1. 数组的声 ... -
Java SE01——原生数据类型
2011-04-26 19:18 831Java SE01——原生数据类型 1.Java中的数据类 ...
相关推荐
《JavaSE应用程序设计》,作者:张利国、刘伟,北京科海电子出版社
由gui编程,javase技术开发的随机点名程序,适用于班级点名!
这个文件里的内容适合Java初学者,这是一些关乎JavaSE面向程序的相关知识以及一些Java的基础使用规则、类的定义规则、方法的定义方式等等。这也是小编在刚开学学习JavaSE时记录的一些笔记,里面的内容非常适合JavaSE...
JavaSE笔试程序题(20180307)JavaSE笔试程序题(20180307)
基于javase的网上商城例子程序
一个基于JavaSe的超市管理系统,简单的桌面应用程序,有数据库建库源码
java API官方下载的文档,为Java SE Development Kit 10.0.1 Documentation,html格式
java基础学习的例子,耐心的看每个例子,大家肯定受益非浅
java初学者可以看看,第一个小项目ATM的实现,代码注释非常详细,很有成就感。
三年JavaEE开发积累的那些代码之一:JavaSE篇 有什么? 1)自己写的例子:或是为了项目中应用写的demo,或是为了学习某项技术写的demo。 2)网上下载的例子:或改过或没改过,或完善过或原封没动。 没什么? 1)公司...
JavaSE技术题Java开发过程中的面试
JavaSE基本知识 适合新手入门 JavaSE基本知识 适合新手入门 JavaSE基本知识 适合新手入门
javaSE
这是北京科海出版的JavaSE应用程序设计一书的配套源码。 由张利国和刘伟主讲,适合Java初学者学习。
测试javase的程序包, 里面有一个文档描述了测试代码
自己写的课程设计 javaSE 实现石头剪刀布(带窗体界面)
图形界面程序的分页程序封装,拿到任何程序都能用,只要你需要分页!!!!!
javase开发的多线程聊天室 ,每位用户独立享有socket,保证聊天速度
JavaSE开发随堂笔记