代码如下,点击按钮没反应,求各位大神支招
<code>
class MouseHandle extends MouseAdapter{
public void mousePressed(MouseEvent e){
try{
JTree tree=(JTree)e.getSource();
int rowLocation=tree.getRowForLocation(e.getX(),e.getY());
TreePath treepath=tree.getPathForRow(rowLocation);
TreeNode treenode=(TreeNode)treepath.getLastPathComponent();
String nodename=treenode.toString();
if(nodename.equals("上传文件")){
//JTF.setText(nodename);
JPright.removeAll();
jb1=new JButton("上传");
Box box=Box.createVerticalBox();
//JPright.setLayout(new FlowLayout(FlowLayout.TRAILING));
box.add(new JLabel("输入需要上传的文件"));
box.add(new JTextField(10));
box.add(jb1);
box.add(box.createVerticalStrut(50));
box.add(new JLabel("目标文件名"));
box.add(new JTextField(10));
box.add(new JButton("打开文件"));
JPright.add(box);
jb1.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
Button button=(Button)e.getSource();
if(button.getLabel().equalsIgnoreCase("上传")){
JTF.setText("hello");
}
}
});
JPright.validate();
}
}catch(NullPointerException ne){}
}}
</code>
<code>
class MouseHandle extends MouseAdapter{
public void mousePressed(MouseEvent e){
try{
JTree tree=(JTree)e.getSource();
int rowLocation=tree.getRowForLocation(e.getX(),e.getY());
TreePath treepath=tree.getPathForRow(rowLocation);
TreeNode treenode=(TreeNode)treepath.getLastPathComponent();
String nodename=treenode.toString();
if(nodename.equals("上传文件")){
//JTF.setText(nodename);
JPright.removeAll();
jb1=new JButton("上传");
Box box=Box.createVerticalBox();
//JPright.setLayout(new FlowLayout(FlowLayout.TRAILING));
box.add(new JLabel("输入需要上传的文件"));
box.add(new JTextField(10));
box.add(jb1);
box.add(box.createVerticalStrut(50));
box.add(new JLabel("目标文件名"));
box.add(new JTextField(10));
box.add(new JButton("打开文件"));
JPright.add(box);
jb1.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
Button button=(Button)e.getSource();
if(button.getLabel().equalsIgnoreCase("上传")){
JTF.setText("hello");
}
}
});
JPright.validate();
}
}catch(NullPointerException ne){}
}}
</code>
解决方案 »
- 使用LinkedHashMap和Comparator排序器对Map的排序抛砖引玉
- java 如何调节 linux系统音量,以及获得硬盘容量,CPU占用率,内存使用率等硬件信息?
- jdk1.6版本下的格式化输出问题??
- java 的udp服务器端代码
- JAVA串行化问题~~~ 对象保存在文件中怎么删除这个对象(请看代码)
- 关于多sql语句执行操作,有一条出现错误做回滚操作的问题
- 禁用循环下求n个数之间的累加和!
- 产生InnerClass对象的问题,已经注明,分可以加!
- 用Jbuilder8的过来看看!JDialog问题
- 有关mvc编程模式的问题!
- 重写。。。。调试通过,编译怎么会出现这种情况呢?
- 初学者遇到的一个小问题
组件的相关动作没有(点击、按下)?
实例验证下:
package com.kiritor;import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;import javax.swing.JButton;public class MyMouseAdapter extends MouseAdapter {
private JButton button = null; public MyMouseAdapter() {
}
public MyMouseAdapter(JButton button) {
this.button = button;
this.button.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("监听器内部的按钮被点击了");
}
}); }}
package com.kiritor;import java.awt.FlowLayout;
import java.awt.event.MouseEvent;import javax.swing.JButton;
import javax.swing.JFrame;public class MyFrame extends JFrame {
private JButton outButton;
private JButton innerButton;
public MyFrame() {
this.setSize(300, 200);
this.setVisible(true);
this.setLayout(new FlowLayout());
outButton = new JButton("外部按钮");
innerButton = new JButton("内部按钮");
this.add(outButton);
this.add(innerButton);
this.setLocationRelativeTo(null);
outButton.addMouseListener(new MyMouseAdapter(innerButton)
{
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("外部按钮被点击了");
}
});
}
public static void main(String[] args) {
MyFrame frame = new MyFrame();
}}
这里点击outButton是不会答应“内部按钮被点击了”这句话的
只有点击了innerButton才会打印这句话。
组件的相关动作没有(点击、按下)?
实例验证下:
package com.kiritor;import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;import javax.swing.JButton;public class MyMouseAdapter extends MouseAdapter {
private JButton button = null; public MyMouseAdapter() {
}
public MyMouseAdapter(JButton button) {
this.button = button;
this.button.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("监听器内部的按钮被点击了");
}
}); }}
package com.kiritor;import java.awt.FlowLayout;
import java.awt.event.MouseEvent;import javax.swing.JButton;
import javax.swing.JFrame;public class MyFrame extends JFrame {
private JButton outButton;
private JButton innerButton;
public MyFrame() {
this.setSize(300, 200);
this.setVisible(true);
this.setLayout(new FlowLayout());
outButton = new JButton("外部按钮");
innerButton = new JButton("内部按钮");
this.add(outButton);
this.add(innerButton);
this.setLocationRelativeTo(null);
outButton.addMouseListener(new MyMouseAdapter(innerButton)
{
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("外部按钮被点击了");
}
});
}
public static void main(String[] args) {
MyFrame frame = new MyFrame();
}}
这里点击outButton是不会答应“内部按钮被点击了”这句话的
只有点击了innerButton才会打印这句话。
感谢你的例子给我启发
已解决主要是在适配器事件中返回event对象的类型出错。。改成JButton就行了