`

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


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics