解决方案 »
- 算法难题
- 请求高手指点迷津!!关于ensureCapacity()的使用,郁闷好几天拉!
- 如何获取今天之前上一周的周1和周日的日期!急等
- 菜鸟在看 thinking in java 给点建议。谢谢!
- system.out.write的疑惑-菜鸟问题
- 把5000多个文件,大约100兆,写入ZipOutputStream,出现Out of Memory,怎么办?
- 才鸟级问题,速解决,速给分!
- 急需要jbuild7的crack......
- 关于jdbc异常:java.sql.SQLException: No data found 郁闷
- 一个简单的问题~
- 各位大哥大姐帮下小弟的忙,关于继承
- 高手给一个正则表达式
如果非要用JTextArea来实现,只有增加个鼠标响应时间。
然后把好友名字所谓的鼠标位置的范围测试出来
然后增加鼠标响应
new MyMouseListener());
你说的是 这样吗:
public class MyMouseListener extends MouseAdapter {
public void mouseClicked(MouseEvent evt) {
if (evt.getClickCount() == 3) {
// 处理鼠标三击
} else if (evt.getClickCount() == 2) {
// 处理鼠标双击
}
}
}
但如何才能双击某一个用户呢???
不就可以实现双击了吗?
你可以查阅Jtextarea类里提供的方法,里面有设置分行方式和获取行位置的方法,或者可以设置滚动条,看能否
定位到行?如果这样不行,那么可以自己设置一个算法,确定每一行对应的鼠标位置范围来定位该行。然后获得该行的文本信息,通过双击触发产生对应该用户的聊天窗口。由于对Jtextarea不是很熟悉,仅供LZ参考~~
import java.awt.event.MouseListener;import javax.swing.JFrame;
import javax.swing.JTable;import swing.ShowDialog;public class Mytable { /**
* @param args
*/
public static void main(String[] args) { CellEditable mytable = new CellEditable();
JFrame f = new JFrame("QQ");
JTable t = new JTable(mytable);
t.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
} public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
} public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
} public void mousePressed(MouseEvent arg0) {
JTable table = (JTable)arg0.getSource();
int row =table.getSelectedRow();
int column = table.getSelectedColumn();
String name = table.getValueAt(row,column).toString();
if (arg0.getClickCount()==2) {
ShowDialog d = new ShowDialog(null,name);
}
} public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}});
t.setCellSelectionEnabled(true);
t.setDragEnabled(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(t);
f.setSize(100, 200);
f.setLocation(200,200);
f.setVisible(true);
}}import java.util.Vector;import javax.swing.table.DefaultTableModel;public class CellEditable extends DefaultTableModel { public boolean isCellEditable(int arg0, int arg1) {
return false;
} public int getColumnCount() {
return 1;
} public int getRowCount() {
return 5;
} public Object getValueAt(int row, int column) { Object[] rowData = { "警察", "小偷", "魔怔", "公务员", "商人" }; return rowData[row];
}}
import java.awt.Frame;
import java.awt.HeadlessException;import javax.swing.JDialog;
import javax.swing.JTextArea;public class ShowDialog extends JDialog { private JTextArea text = null; public ShowDialog(Frame arg0, String arg1) throws HeadlessException {
super(arg0, arg1);
text = new JTextArea();
text.setBounds(40, 40, 130, 60);
add(text); setLayout(null);
setLocation(500, 500);
setSize(200, 200);
setVisible(true); }}