JavaGUI之使用表格实现显示输入字符串的每个字符的Unicode值

你只需要在文本框中输入想要查询的字符串(当然设计的程序肯定规定了你不能输入太多,尽管你对它们充满好奇),按下回车,你就会有意想不到的发现,出来了一张表格,而且它把你输入的字符串的各个字符的Unicode值都显示出来了!哇哦,妈妈再也不用担心我不会找Unicode值了。

效果如下:
JavaGUI之使用表格实现显示输入字符串的每个字符的Unicode值_第1张图片
JavaGUI之使用表格实现显示输入字符串的每个字符的Unicode值_第2张图片

代码:

package Homework4;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

public class QueryFrame extends JFrame implements ActionListener {

	private JTextField searchString;// 输入字符串的文本框
	private JTable table;// 显示字符和对应编码的表格
	private JPanel p1;
	JLabel label;
	private Font font;
	Container c = this.getContentPane();
	private DefaultTableModel model;// 全局表格模型,用来处理数据
	String str;
	String[] columnNames = { "字符", "Unicode值" };// 定义表格列

	public QueryFrame() {
		this.setTitle("字符串编码查询器");
		this.setBounds(420, 150, 250, 367);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		p1 = new JPanel(new FlowLayout());
		this.font = new Font("微软雅黑", Font.PLAIN, 15);
		label = new JLabel();
		label.setText("字符串");
		label.setFont(font);
		p1.add(label);
		this.searchString = new JTextField("欢迎"); // 文本行组件
		this.searchString.setCaretPosition(searchString.getText().length());
		this.searchString.setColumns(10);
		this.searchString.setFont(font);
		p1.add(searchString);
		// c.add(searchString);
		c.add(p1, BorderLayout.NORTH);
		this.searchString.addActionListener(this);
		model = new DefaultTableModel(columnNames, 0);
		table = new JTable(model);
		JScrollPane sc = new JScrollPane(table);
		c.add(sc);
		table.setRowHeight(30);// 设置行高30像素
		table.setSelectionForeground(Color.RED);
		table.setSelectionBackground(Color.YELLOW);

		this.setVisible(true);

	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == this.searchString) {
			str = searchString.getText();
			model.setRowCount(str.length());
			for (int row = 0; row < str.length(); row++) {
				char ch = str.charAt(row);
				model.setValueAt(ch + "", row, 0);
				model.setValueAt((int) ch + "", row, 1);
			}
		}
	}

	public static void main(String[] args) {
		new QueryFrame();
	}

}

你可能感兴趣的:(java)