在JDialog中加入一个JList,jlist中是我查询数据库得到的数据,我的问题是
1。怎样才能双击list的数据项关闭JDialog
2。将取得的值回填到jTextField中
1。怎样才能双击list的数据项关闭JDialog
2。将取得的值回填到jTextField中
解决方案 »
- 编译文件时出现了未经检查或不安全的操作,具体是怎么回事?
- 请帮忙下载一个资源,谢谢~~
- 一个牛B的Java表达式解析器——Jeval
- Socket编程时,出现的一个异常!!请大侠们帮帮忙!!!
- 新手:XML在编程中有什么用途?
- 简单的问题:怎样执行一个含有多个main的jar文件?
- 如何实现象windows中属性那样的功能?
- 关于使用javamail做邮件群发,思路是什么?
- 谁有JBuilder mobileset2.0 的license key?
- java jxl读取带空格路径的文件问题
- 编个函数实现交换2个int 型a,b的直,只能用这个2个变量,不能用额外的变量,如何实现
- 诚心请教JAVA图形用户界面和IO处理问题!
public class MyListDialog extends JDialog implements MouseListener{
private javax.swing.JList jList = null;
//加监听
jList.addMouseListener(this);
//事件处理
public void mouseReleased(MouseEvent arg0) {
if(arg0.getClickCount() == 2){
String str = (String) jList.getSelectedValue();
//取得的值回填到jTextField
//MyFrame应替换成您的JFrame类即含有jTextField那个
MyFrame.createInstance().jTextField.setText(str);
this.dispose();
}
}
}
public class YiShengList extends JPanel{
int i;
String[] listTable = new String[i];
public YiShengList() {
setLayout(new BorderLayout());
JList jlist = new JList(listTable);
DefaultListModel model = new DefaultListModel();
jlist.setModel(model);
jlist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jlist.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent evt) {
if (evt.getClickCount() == 2) {
JList source = (JList) evt.getSource();
int index = source.locationToIndex(evt.getPoint());
if (index >= 0) {
Object value = source.getModel().getElementAt(index);
System.out.println(value);
}
}
}
}); //设置行数
jlist.setVisibleRowCount(12);
JScrollPane pane = new JScrollPane(jlist);
add(pane, BorderLayout.CENTER);
}
}
/*
* 创建日期 2005-5-31
*
* 更改所生成文件模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
package test;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//import java.awt.event.KeyEvent;
//import java.awt.event.KeyListener;
import javax.swing.JFrame;/**
* @author IBM
*
* 更改所生成类型注释的模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
public class MyFrame extends JFrame implements /*KeyListener,*/ActionListener { private javax.swing.JPanel jContentPane = null;
private static MyFrame mf = new MyFrame(); private javax.swing.JButton jButton = null;
public javax.swing.JTextField jTextField = null;
private javax.swing.JTextField jTextField1 = null;
private String string = null;
/* (非 Javadoc)
* @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent)
*/
// public void keyTyped(KeyEvent e) {
// // TODO 自动生成方法存根
//
// }
//
// /* (非 Javadoc)
// * @see java.awt.event.KeyListener#keyPressed(java.awt.event.KeyEvent)
// */
// public void keyPressed(KeyEvent e) {
// int keycode = e.getKeyCode();
// if(keycode == KeyEvent.VK_ENTER){
// this.dispose();
// }
//
// }
//
// /* (非 Javadoc)
// * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)
// */
// public void keyReleased(KeyEvent e) {
// // TODO 自动生成方法存根
//
// } public static MyFrame createInstance(){
return mf;
} public static void main(String[] args) {
MyFrame.createInstance().show();
}
/**
* This is the default constructor
*/
private MyFrame() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.getRootPane().setDefaultButton(jButton);
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private javax.swing.JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new javax.swing.JPanel();
jContentPane.setLayout(new java.awt.BorderLayout());
jContentPane.add(getJButton(), java.awt.BorderLayout.SOUTH);
jContentPane.add(getJTextField(), java.awt.BorderLayout.NORTH);
jContentPane.add(getJTextField1(), java.awt.BorderLayout.CENTER);
}
return jContentPane;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private javax.swing.JButton getJButton() {
if(jButton == null) {
jButton = new javax.swing.JButton("ok");
jButton.setSelected(true);
}
//jButton.addKeyListener(this);
jButton.addActionListener(this);
jButton.setFocusCycleRoot(true);
return jButton;
}
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private javax.swing.JTextField getJTextField() {
if(jTextField == null) {
jTextField = new javax.swing.JTextField();
}
jTextField.setFocusCycleRoot(false);
return jTextField;
}
/**
* This method initializes jTextField1
*
* @return javax.swing.JTextField
*/
private javax.swing.JTextField getJTextField1() {
if(jTextField1 == null) {
jTextField1 = new javax.swing.JTextField();
}
jTextField1.setFocusCycleRoot(false);
return jTextField1;
} /* (非 Javadoc)
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent e) {
MyListDialog dlg = new MyListDialog(this,string);
// dlg.show(true);
dlg.setVisible(true);
System.out.println("oo"+jTextField.getText());
}
}
/*
* 创建日期 2005-5-31
*
* 更改所生成文件模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
package test;import java.awt.Frame;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;import javax.swing.DefaultListModel;
import javax.swing.JDialog;/**
* @author IBM
*
* 更改所生成类型注释的模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
public class MyListDialog extends JDialog implements MouseListener{ private javax.swing.JPanel jPanel = null;
private javax.swing.JList jList = null;
private DefaultListModel listModel = new DefaultListModel();
private String ret = null;
public String getRet(){
return ret;
}
/**
* This method initializes
*
*/
public MyListDialog(Frame owner,String exp) {
super();
initialize();
ret = exp;
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setContentPane(getJPanel());
this.setSize(296, 210);
}
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private javax.swing.JPanel getJPanel() {
if(jPanel == null) {
jPanel = new javax.swing.JPanel();
jPanel.add(getJList(), null);
}
return jPanel;
}
/**
* This method initializes jList
*
* @return javax.swing.JList
*/
private javax.swing.JList getJList() {
if(jList == null) {
jList = new javax.swing.JList();
}
listModel.addElement("dog");
listModel.addElement("cat");
listModel.addElement("cow");
jList.setModel(listModel);
jList.addMouseListener(this);
return jList;
}
/* (非 Javadoc)
* @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
*/
public void mouseClicked(MouseEvent arg0) {
// TODO 自动生成方法存根
}
/* (非 Javadoc)
* @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
*/
public void mousePressed(MouseEvent arg0) {
// TODO 自动生成方法存根
}
/* (非 Javadoc)
* @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
*/
public void mouseReleased(MouseEvent arg0) {
if(arg0.getClickCount() == 2){
String str = (String) jList.getSelectedValue();
//System.out.println(str);
ret = str;
System.out.println(ret);
MyFrame.createInstance().jTextField.setText(ret);
this.dispose();
}
}
/* (非 Javadoc)
* @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
*/
public void mouseEntered(MouseEvent arg0) {
// TODO 自动生成方法存根
}
/* (非 Javadoc)
* @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
*/
public void mouseExited(MouseEvent arg0) {
// TODO 自动生成方法存根
}
} // @jve:visual-info decl-index=0 visual-constraint="98,10"
public void mousePressed(MouseEvent e)
{
if (e.getClickCount() == 2)
{
//do something
}
} });实际就是把1楼的mouseReleased改成mousePressed试试。另外,在do something里,你的jTextField一定不在这个JDialog里,一定是在一个原来的JFrame里,可以在初始化这个JDialog时把JFrame传过来,或者把JTextField传过来,再调用
set()的方法修改JTextField的值为(String) myList.getSelectedValue();理想的,可以用Observer Pattern来实现这个传递。
public void showMyFrame(){
createInstance().show();
}