读书人

JavaSE14窗体程序开发(上)

发布时间: 2012-10-25 10:58:57 作者: rapoo

JavaSE14—窗体程序开发(下)
JavaSE14—窗体程序开发(下)

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);}}


读书人网 >编程

热点推荐