要求如下:输入一个字符串,使用表格显示其中每个字符的Unicode值,通过按键或者回车键查询
package shiyan3;
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Scanner;
import java.util.Vector;
import javax.swing.JPanel;
import javax.swing.AbstractButton;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
public class QueryFrame1 extends JFrame implements ActionListener
{
private JTextField text_str;
private JButton button_str=new JButton("黑色");
private JTable table;
JTable table_1=null;
JLabel label,label_1;
ImageIcon background;
private Font font;
private Object EXIT_ON_CLOSE;
Container c = this.getContentPane();//创建一个容器,方便向框架内添加组件
private DefaultTableModel model;// 全局表格模型,用来处理数据
String s;
String[] Str = { "字符", "Unicode值" };// 定义表格列
public QueryFrame1()
{
super("Unicode 字符查询器");//窗口标题
//this.setTitle("Unicode 字符串查询器");//窗口标题的另一种方法。
//this.setBackground(Color.white);
//this.getContentPane().setBackground(Color.red);
//this.getContentPane().setVisible(false);//如果改为true那么就变成了红色。
this.setBounds(400, 200,400,300);//设置位置和尺寸
/*background = new ImageIcon("C:\\Users\\acer\\Desktop\\EE90D8E8C9354C9EDAFE9B47AB8F41C5.JPG"); //h创建一个背景图片
label_1 = new JLabel(background); //把背景图片添加到标签里
label_1.setBounds(0, 0, background.getIconWidth(), background.getIconHeight()); //把标签设置为和图片等高等宽
JPanel myPanel = (JPanel)this.getContentPane(); //把我的面板设置为内容面板
myPanel.setOpaque(false); //把我的面板设置为不可视
myPanel.setLayout(new FlowLayout()); //把我的面板设置为流动布局
this.getLayeredPane().setLayout(null); //把分层面板的布局置空
this.getLayeredPane().add(label_1, new Integer(Integer.MIN_VALUE));*/
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel panel=new JPanel();
this.font = new Font("楷体", Font.PLAIN, 15);//设置字体格式。
label = new JLabel();
label.setText("字符串");
label.setForeground(Color.RED);//字体颜色
label.setFont(font);//字体格式
panel.add(label);
this.text_str = new JTextField(""); // 文本行组件,在这里面输入要查询的字符串
this.text_str.setCaretPosition(text_str.getText().length());//
this.text_str.setColumns(10); //文本行长度尺寸。
this.text_str.setFont(font);//输入文本字体格式。
panel.add(text_str);
c.add(panel, BorderLayout.NORTH);//边界布局,设置在北。
this.text_str.addActionListener(this);//回车键查询。
button_str=new JButton("查询");//按键查询。
panel.add(button_str);
button_str.setForeground(Color.BLUE);//按钮字体颜色
button_str.setFont(font);//按钮字体格式
button_str.addActionListener(this);
model = new DefaultTableModel(Str, 1);
table = new JTable(model);//表格
JScrollPane sc = new JScrollPane(table);//滚动窗格
c.add(sc);
table.setRowHeight(20);// 设置行高20像素
this.setVisible(true);
}
private void setDefaultCloseOperation(Object eXIT_ON_CLOSE2)
{
//System.out.println();
}
public static void main(String[] args)
{
new QueryFrame1();
}
public void actionPerformed(ActionEvent ev)
{
if (ev.getSource() == this.text_str||ev.getSource() == this.button_str)//ev.getSource()获取当前事件源组件,比较引用。
{
s = text_str.getText();
model.setRowCount(s.length());//设置行数
for (int i = 0; i < s.length(); i++) //每行输出。
{
char ch = s.charAt(i);
model.setValueAt(ch + "", i, 0);//设置i行第一列单元的值
model.setValueAt((int) ch + "", i, 1);//设置i行第二列单元的值
}
}
}
}
运行结果如下: