目的: 1、理解容器和组件的思想,掌握Swing开发图像用户界面程序的方法; 2、理解布局的概念及掌握几种布局管理器特点和用法; 3、理解Java的消息处理机制,掌握消息处理方法。 题目: 编写一个窗体应用程序,实现以下功能: a) 窗口布局为BorderLayout;在窗口的北侧区域包含有一个文本框和一个按钮,南侧含一个下拉列表框,窗口中间区域有一个文本区。 b) 用户在文本框中输入一个数值并回车,或者点击按钮时,将文本框内的数值显示在文本区中;当用户输入“clear”的时候,清空文本区的全部内容。 c) 下拉列表框里内容自己定义,当进行下拉选择时,同样将列表框中的内容显示在文本区中
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;
import javax.swing.border.TitledBorder;
public class Container extends JFrame implements ActionListener,ItemListener {
JTextField tfield;
JLabel lab1;
JButton button;
JTextArea tarea;
JComboBox<String>comBox;
private JPanel panel1;
private JLabel lab2;
private JPanel panel2;
private String str;
private int n = 0;
private JPanel panel3;
public Container() {
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init() {
tfield = new JTextField(10);
lab1 = new JLabel("请输入");
button = new JButton("确认");
tarea = new JTextArea(40,40);
comBox = new JComboBox<String>();
panel1 = new JPanel();
panel1.add(lab1);
panel1.add(tfield);
panel1.add(button);
add(panel1,BorderLayout.NORTH);
lab2 = new JLabel("请选择");
panel2 = new JPanel();
panel2.add(lab2);
comBox.addItem("喜羊羊");
comBox.addItem("灰太狼");
panel2.add(comBox);
add(panel2,BorderLayout.SOUTH);
panel3 = new JPanel();
panel3.add(tarea);
add(panel3,BorderLayout.CENTER);
button.addActionListener(this);
tfield.addActionListener(this);
comBox.addItemListener(this);
}
public void actionPerformed(ActionEvent e) {
String text=tfield.getText();
if(text.equals("clear")) {
tarea.setText(null);
}
else tarea.setText(text);
}
public void itemStateChanged(ItemEvent e) {
tarea.setText(comBox.getSelectedItem().toString());
}
}
public class Containerplay {
public static void main(String[] args) {
Container win = new Container();
win.setBounds(300, 200, 600, 360);
win.setTitle("喜羊羊与灰太狼");
}
}
程序截图:
|