JPanel的定义及作用是什么,清楚举例子解释一下更好
发布网友
发布时间:2024-05-05 13:49
我来回答
共1个回答
热心网友
时间:2024-05-12 12:07
JPanel 是什么?
答: Java图形用户界面工具包swing中的面板容器类,是一种轻量级的容器,可以加入到JFrame, JDialog等容器中。JPanel默认的布局管理器流式布局 (FlowLayout).
JPanel 作用?
答: 可以把其他的组件添加到JPanel里, 比如按钮JButton, 标签JLabel, 文本框JTextField 等添加到JPanel里, 变成复杂的面板.
例子:下面的窗口 ,我们可以解析成为2个JPanel面板
第一个面板添加了文本框 ,标签 等组件
第二个面板添加了按钮组件
具体的代码
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class AddFrame extends JFrame implements ActionListener {
JTextField jtf1, jtf2, jtf3;//文本框
JButton jbAdd, jbClear;//按钮
String defNum = "0.0"; //默认值
public AddFrame() {
//jp1 显示加法算式用
JPanel jp1 = new JPanel(); //面板1
jtf1 = new JTextField(8);
JLabel jl1 = new JLabel("+");
jtf2 = new JTextField(8);
JLabel jl2 = new JLabel("=");
jtf3 = new JTextField(8);
jtf3.setEditable(false);//结果文本框,禁止编辑
jp1.add(jtf1);
jp1.add(jl1);
jp1.add(jtf2);
jp1.add(jl2);
jp1.add(jtf3);
clearText();//设置文本默认值
//jp2用于显示按钮
JPanel jp2 = new JPanel();//面板2
jbAdd = new JButton("相加");
jbAdd.addActionListener(this);
jbClear = new JButton("清空");
jbClear.addActionListener(this);
jp2.add(jbAdd);
jp2.add(jbClear);
add(jp1);
add(jp2);
setLayout(new GridLayout(2, 1));//布局,2行1列
setTitle("加法计算器");// 标题
setSize(360, 128);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setResizable(false);// 窗口禁止缩放
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
}
public static void main(String[] args) {
new AddFrame().setVisible(true);// 创建窗口实例并可见
}
private void clearText() {//设置文字为初始化的0.0
jtf1.setText(defNum);
jtf2.setText(defNum);
jtf3.setText(defNum);
}
@Override
public void actionPerformed(ActionEvent e) {
//如果点击的是相加按钮.
if (e.getSource() == jbAdd) {
double d1, d2 = 0;
try {
d1 = Double.parseDouble(jtf1.getText().trim());//从文字到数字的转换
d2 = Double.parseDouble(jtf2.getText().trim());
} catch (Exception ex) {
jtf3.setText(defNum);
JOptionPane.showMessageDialog(null, "Sorry!不能输入字母汉字等.\n请输入合法的数字.", "错误提示", JOptionPane.ERROR_MESSAGE);
return;
}
jtf3.setText((d1 + d2) + "");
} else if (e.getSource() == jbClear) {//如果点击的时清空按钮
clearText();
}
}
}