/*
* 创建日期 2006-5-18
*
*/
package app;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Vector;
import javax.swing.DefaultCellEditor;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableColumn;
/**
*
* @author sheer
* @project test
* @time 2007 2007-7-24 上午10:12:48
*/
public class TestPop extends JFrame implements PopWindowInterface {
private JPanel jPanel = null;
private PopWindowTextFiled popWindowTextFiled = null;
private PopWindowTextFiled popWindowTextFiled1 = null;
Vector aa = new Vector();
private JPanel jPanel1 = null;
private JScrollPane jScrollPane = null;
private JTable jTable = null;
private JLabel jLabel = null;
/**
* This method initializes
*
*/
public TestPop() {
super();
initialize();
}
public class TM extends AbstractTableModel {
String[] colnames = { "普通列", "弹窗列" };
Class[] colClasses = { String.class, String.class };
String[][] data = new String[10][2];
public TM() {
super();
}
public int getColumnCount() {
return colnames.length;
}
public String getColumnName(int index) {
return colnames[index];
}
public Class getColumnClass(int c) {
return colClasses[c];
}
public int getRowCount() {
return data.length;
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
public void setValueAt(Object obj, int row, int col) {
data[row][col] = (String) obj;
fireTableRowsUpdated(row, row);
}
public boolean isCellEditable(int row, int col) {
return true;
}
}
/**
* This method initializes this
*
*/
private void initialize() {
this.setSize(new java.awt.Dimension(300, 320));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setContentPane(getJPanel());
// for (int i = 0; i < 1000; i++) {
aa.add("我");
aa.add("你们");
aa.add("和");
aa.add("善");
aa.add("们");
aa.add("我们");
aa.add("我");
aa.add("你们");
aa.add("和");
aa.add("善");
aa.add("们");
aa.add("我们");
aa.add("我");
aa.add("你们");
aa.add("和");
aa.add("善");
aa.add("们");
aa.add("我们");
aa.add("我");
aa.add("你们");
aa.add("和");
aa.add("善");
aa.add("们");
aa.add("我们");
aa.add("我");
aa.add("你们");
aa.add("和");
aa.add("善");
aa.add("们");
aa.add("我们");
aa.add("我");
aa.add("你们");
aa.add("和");
aa.add("善");
aa.add("们");
aa.add("我们");
// }
}
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(new BorderLayout());
jPanel.add(getJPanel1(), BorderLayout.NORTH);
jPanel.add(getJScrollPane(), BorderLayout.CENTER);
}
return jPanel;
}
/**
* This method initializes popWindowTextFiled
*
* @return app.PopWindowTextFiled
*/
private PopWindowTextFiled getPopWindowTextFiled() {
if (popWindowTextFiled == null) {
popWindowTextFiled = new PopWindowTextFiled(this);
popWindowTextFiled.setColumns(10);
}
return popWindowTextFiled;
}
/**
* This method initializes popWindowTextFiled
*
* @return app.PopWindowTextFiled
*/
private PopWindowTextFiled getPopWindowTextFiled1() {
if (popWindowTextFiled1 == null) {
popWindowTextFiled1 = new PopWindowTextFiled(
new PopWindowInterface() {
// 实现接口后按需要重载此方法
public Vector getPopData(String key) {
if (key.equals("")) {
return aa;
}
Vector data = new Vector();
for (int i = 0; i < aa.size(); i++) {
if (aa.elementAt(i).toString().indexOf(key) == 0) {
data.addElement(aa.elementAt(i));
}
}
return data;
}
// 实现接口后按需要重载此方法
public void chooseOK(Object value) {
String str = (String) value;
getPopWindowTextFiled1().setText(str);
}
});
popWindowTextFiled1.setColumns(10);
}
return popWindowTextFiled1;
}
/**
* This method initializes jPanel1
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel1() {
if (jPanel1 == null) {
jLabel = new JLabel();
jLabel.setText("弹出列表文本框:");
jLabel.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
getPopWindowTextFiled1().setText("我");
}
});
jPanel1 = new JPanel();
jPanel1.setLayout(new FlowLayout());
jPanel1.add(jLabel, null);
jPanel1.add(getPopWindowTextFiled1(), null);
}
return jPanel1;
}
/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setViewportView(getJTable());
}
return jScrollPane;
}
/**
* This method initializes jTable
*
* @return javax.swing.JTable
*/
private JTable getJTable() {
if (jTable == null) {
jTable = new JTable();
jTable.setModel(new TM());
PopWindowTextFiled editor = getPopWindowTextFiled();
editor.setBorder(null);
TableColumn timeColumn = jTable.getColumn("弹窗列");
DefaultCellEditor dce = new DefaultCellEditor(editor);
dce.setClickCountToStart(1);
timeColumn.setCellEditor(dce);
}
return jTable;
}
/**
* @param args
*/
public static void main(String[] args) {
TestPop pop = new TestPop();
pop.setVisible(true);
pop.getPopWindowTextFiled1().setText("12345");
}
// 实现接口后按需要重载此方法
public Vector getPopData(String key) {
if (key.equals("")) {
return aa;
}
Vector data = new Vector();
for (int i = 0; i < aa.size(); i++) {
if (aa.elementAt(i).toString().indexOf(key) == 0) {
data.addElement(aa.elementAt(i));
}
}
return data;
}
// 实现接口后按需要重载此方法
public void chooseOK(Object value) {
String str = (String) value;
getPopWindowTextFiled().setText(str);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
弹窗辅助输入JTextField
共3个文件
java:3个
5星 · 超过95%的资源 需积分: 9 12 下载量 198 浏览量
2012-03-13
12:12:21
上传
评论
收藏 3KB RAR 举报
温馨提示
扩展JTextField功能,使之能在输入一段字符后弹出下拉列表,在集合中匹配相似的信息,辅助完成整个输入,效果类似在订机票时输入目的地时辅助输入的形式.可在JTable中使用
资源推荐
资源详情
资源评论
收起资源包目录
弹窗JTextField.rar (3个子文件)
TestPop.java 7KB
PopWindowTextFiled.java 5KB
PopWindowInterface.java 296B
共 3 条
- 1
资源评论
- xgw1982462013-02-17效果不错.......
- vincar2012-12-16虽然和想要的效果不同。。但是资源还不错
- sang22222014-04-04非常不错 很好,谢谢你
- 顾琪琪2012-12-17可以用!谢谢
- banianxd2013-01-25下来看看,好像很复杂的样子
sheer
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功