关于JTextArea焦点的问题 我的一界面里有两个JTextArea,我想让光标在那个JTextArea里面,就对其操作,例如我复制一个字符串,把光标放在那个位置,就在那粘贴,就是想获取焦点所在的组件,请帮忙一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 JTextArea的requestFocus()方法可以获得焦点至于你说的什么粘贴,我没明白是什么意思 发现这里提问的同志表达能力都有点问题你的意思是不是想表达,哪个area获得焦点,就得到这个area的对象,并对其进行操作?要为他们添加焦点监听事件,具体代码我随便写了点,你试下看看吧。import java.awt.*;import java.awt.event.*;import javax.swing.*;public class FocusTest extends JFrame{ JTextArea txaA=new JTextArea(); JTextArea txaB=new JTextArea(); //构造函数 public FocusTest(){ this.getContentPane().add(txaA,BorderLayout.NORTH); this.getContentPane().add(txaB,BorderLayout.SOUTH); listen(); this.setSize(300,200); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public void listen(){ //为A文本域添加焦点侦听器,使用FocusListener作为参数 txaA.addFocusListener(new FocusListener(){ //实现失去焦点方法。 public void focusLost(FocusEvent e){ txaA.setText("我已失去焦点!"); } //实现得到焦点方法。 public void focusGained(FocusEvent e){ txaA.setText("我已得到焦点!"); txaB.setText("");//清空B } }); //为B文本域添加焦点侦听器,使用FocusAdapter作为参数 txaB.addFocusListener(new FocusAdapter(){ public void focusGained(FocusEvent e){ txaB.setText("我已获得焦点!"); } }); } public static void main(String[] args){ new FocusTest(); }} 这里要说明一下,使用FocusAdapter,只需要实现“失去”或者“获得”,任意一个方法就可以了!而使用FocusListener,必须同时实现这两个方法。其实,也可以不一一为每一个控件都添加监听,只需要为整个窗体添加一个监听,然后在事件监听代码里,使用(强制转换)e.getSource()得到触发事件的那一个部件,然后对其进行你要的操作就可以了。e是FocusEvent的变量名…… 用grabFocus();呢? 多谢,我想问一下就是想用按钮粘贴已复制的数据,使用按钮事件,在焦点所在的JTextField中进行操作,怎么样处理这两个不同的对象,使用FocusLister好象不行,无法使用按钮 有学习了点东西:{使用FocusAdapter,只需要实现“失去”或者“获得”,任意一个方法就可以了!而使用FocusListener,必须同时实现这两个方法} 我想要的是如何判断焦点所在的那个组件,例如,如果在jtf1,按钮事件就对jtf1进行操作,请帮忙 不过调用listen函数下的监听函数怎么触发?能再贴段代码吗? 无赖啊 关于属小母牛的问题 改了一下cow.grow();的位置,结果咋就不一样了啊 ,想不明白啊 (从网上找的一个例子) java的jdk javaBean Builder 请问如何获取到当前方法名称?马上给分! 谁知道哪有java web图表显示 的控间? 看过Java2核心技术卷的朋友请进 为什么jvm不能用的啊 java访问数据库不能成功 可不可以介绍一下? swt弹出的ColorDialog对话框问题 函数里的循环,当执行第2遍的时候就跳出循环体了.
至于你说的什么粘贴,我没明白是什么意思
import java.awt.event.*;
import javax.swing.*;
public class FocusTest extends JFrame{
JTextArea txaA=new JTextArea();
JTextArea txaB=new JTextArea();
//构造函数
public FocusTest(){
this.getContentPane().add(txaA,BorderLayout.NORTH);
this.getContentPane().add(txaB,BorderLayout.SOUTH);
listen();
this.setSize(300,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void listen(){
//为A文本域添加焦点侦听器,使用FocusListener作为参数
txaA.addFocusListener(new FocusListener(){
//实现失去焦点方法。
public void focusLost(FocusEvent e){
txaA.setText("我已失去焦点!");
}
//实现得到焦点方法。
public void focusGained(FocusEvent e){
txaA.setText("我已得到焦点!");
txaB.setText("");//清空B
}
});
//为B文本域添加焦点侦听器,使用FocusAdapter作为参数
txaB.addFocusListener(new FocusAdapter(){
public void focusGained(FocusEvent e){
txaB.setText("我已获得焦点!");
}
});
}
public static void main(String[] args){
new FocusTest();
}
}
其实,也可以不一一为每一个控件都添加监听,只需要为整个窗体添加一个监听,然后在事件监听代码里,使用(强制转换)e.getSource()得到触发事件的那一个部件,然后对其进行你要的操作就可以了。e是FocusEvent的变量名……