50,527
社区成员
发帖
与我相关
我的任务
分享
public class MyTextArea extends JTextArea {
private int index; // with getter & setter
....
}
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class MatrixListener extends JPanel{
public MatrixListener() {
this.setLayout(null);
this.setPreferredSize(new Dimension(800, 600));
int x = 30, y = 30;
for(int i = 0; i < 42; i ++) {
if(i % 7 == 0 && i != 0) {
x = 30;
y += 80;
}
JTextArea jta = new JTextArea("(" + x + "," + y + ")");
jta.setName("textarea_ " + i);
jta.setBounds(x, y, 80, 20);
jta.setBorder(BorderFactory.createBevelBorder(1));
jta.addMouseListener(new matrix_mouseAdapter(this));
this.add(jta);
x += 100;
}
}
public void jta_mouseEntered(MouseEvent e) {
JTextArea jta = (JTextArea)e.getSource();
System.out.println(jta.getName());
jta.grabFocus();
jta.setSelectionStart(0);
jta.setSelectionEnd(jta.getText().length());
}
public static void main(String args[]) {
JFrame frame = new JFrame();
frame.setPreferredSize(new Dimension(800, 600));
frame.setBounds(50, 50, 800, 600);
frame.add(new MatrixListener());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class matrix_mouseAdapter extends MouseAdapter {
MatrixListener adaptee;
public matrix_mouseAdapter(MatrixListener adaptee) {
this.adaptee = adaptee;
}
public void mouseEntered(MouseEvent e) {
adaptee.jta_mouseEntered(e);
}
}
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class MatrixListener extends JPanel{
public MatrixListener() {
this.setLayout(null);
this.setPreferredSize(new Dimension(800, 600));
int x = 30, y = 30;
for(int i = 0; i < 42; i ++) {
if(i % 7 == 0 && i != 0) {
x = 30;
y += 80;
}
JTextArea jta = new JTextArea("(" + (i%7) + "," + i + ")");
jta.setBounds(x, y, 80, 20);
jta.setEditable(false);
jta.setEnabled(false);
jta.setBorder(BorderFactory.createBevelBorder(1));
jta.addMouseListener(new matrix_mouseAdapter(this));
this.add(jta);
x += 100;
}
}
public void jta_mouseClicked(MouseEvent e) {
JTextArea jta = (JTextArea)e.getSource();
if(e.getClickCount() == 2) {
jta.setEditable(true);
jta.setEnabled(true);
jta.grabFocus();
jta.setSelectionStart(0);
jta.setSelectionEnd(jta.getText().length());
}
}
public static void main(String args[]) {
JFrame frame = new JFrame();
frame.setPreferredSize(new Dimension(800, 600));
frame.setBounds(50, 50, 800, 600);
frame.add(new MatrixListener());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class matrix_mouseAdapter extends MouseAdapter {
MatrixListener adaptee;
public matrix_mouseAdapter(MatrixListener adaptee) {
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e) {
adaptee.jta_mouseClicked(e);
}
}