netbeans GUI中怎么给比如JPanel添加接口呀

问题描述

netbeans里都是使用的匿名内部类,我想给JPanel这样的面板加个监听器,难不成我从新弄个它的子类,然后手动修改它的代码吗?请问netbeans达人,这些怎么做才更好?谢谢!

解决方案

解决方案二:
你说的什么,不大明白...NB的swing程序生成的代码默认只是监听器是匿名内部类,并且在"工具--选项--其他--gui生成"里可调而一般的组件都生成是类的私有属性啊.并且如果你用其可视化设计界面的话,为某组件设置监听器,只需要点击那个组件,在旁边的属性面板中点击事件,选择相应的事件就好了啊
解决方案三:
新建一个面板类,继承JPanel,如果是写事件监听器,可以直接在设计界面里直接添加,如果要实现接口,就要自己写代码了
解决方案四:
把EventLisnter实现成innerclass是为了方便访问enclosingclass的成员,某个Event发生的时候,你的响应逻辑通常是需要访问这些成员的。当然也可以写一个独立的EventLisnter实现然后用addxxxLisnter方法添加到component上,不过这时候你想访问这component上的成员时,作为eventsource的component要提供足够的public方法。
解决方案五:
哦多谢楼上几位。问题问的却是有点模糊。不是监听器。是让组件实现一个接口。当然了这个接口肯定也是监听器了。只是在它的可视化里没有:如就是这个,看下加粗部分就可以了,比方说就是添加这么个东东。这个接口可视化里可没有。我要实现拖拽的那种程序。如果达人们有更好的实现组件或类库,那更方便。而自己基于swing,那就只有自己写代码啦。publicclassComplexExampleextendsJFrameimplementsDragGestureListener{JPanelpanel;JPanelleft;publicComplexExample(){setTitle("ComplexExample");panel=newJPanel(newFlowLayout(FlowLayout.LEFT,50,15));JButtonopenb=newJButton("ChooseColor");openb.setFocusable(false);left=newJPanel();left.setBackground(Color.red);left.setPreferredSize(newDimension(100,100));openb.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){JColorChooserclr=newJColorChooser();Colorcolor=clr.showDialog(panel,"ChooseColor",Color.white);left.setBackground(color);}});JPanelright=newJPanel();right.setBackground(Color.white);right.setPreferredSize(newDimension(100,100));newMyDropTargetListener(right);DragSourceds=newDragSource();ds.createDefaultDragGestureRecognizer(left,DnDConstants.ACTION_COPY,this);panel.add(openb);panel.add(left);panel.add(right);add(panel);pack();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setLocationRelativeTo(null);setVisible(true);}publicvoiddragGestureRecognized(DragGestureEventevent){Cursorcursor=null;JPanelpanel=(JPanel)event.getComponent();Colorcolor=panel.getBackground();if(event.getDragAction()==DnDConstants.ACTION_COPY){cursor=DragSource.DefaultCopyDrop;}event.startDrag(cursor,newTransferableColor(color));}classMyDropTargetListenerextendsDropTargetAdapter{privateDropTargetdropTarget;privateJPanelpanel;publicMyDropTargetListener(JPanelpanel){this.panel=panel;dropTarget=newDropTarget(panel,DnDConstants.ACTION_COPY,this,true,null);}publicvoiddrop(DropTargetDropEventevent){try{Transferabletr=event.getTransferable();Colorcolor=(Color)tr.getTransferData(TransferableColor.colorFlavor);if(event.isDataFlavorSupported(TransferableColor.colorFlavor)){event.acceptDrop(DnDConstants.ACTION_COPY);this.panel.setBackground(color);event.dropComplete(true);return;}event.rejectDrop();}catch(Exceptione){e.printStackTrace();event.rejectDrop();}}}publicstaticvoidmain(String[]args){newComplexExample();}}classTransferableColorimplementsTransferable{protectedstaticDataFlavorcolorFlavor=newDataFlavor(Color.class,"AColorObject");protectedstaticDataFlavor[]supportedFlavors={colorFlavor,DataFlavor.stringFlavor,};Colorcolor;publicTransferableColor(Colorcolor){this.color=color;}publicDataFlavor[]getTransferDataFlavors(){returnsupportedFlavors;}publicbooleanisDataFlavorSupported(DataFlavorflavor){if(flavor.equals(colorFlavor)||flavor.equals(DataFlavor.stringFlavor))returntrue;returnfalse;}publicObjectgetTransferData(DataFlavorflavor)throwsUnsupportedFlavorException{if(flavor.equals(colorFlavor))returncolor;elseif(flavor.equals(DataFlavor.stringFlavor))returncolor.toString();elsethrownewUnsupportedFlavorException(flavor);}}多谢!
解决方案六:
麻烦朋友有时间再来看看,我给出了个例子。这是一个完整的例子,拷过去生成class,就可以运行了。就是想在netbeans里如何实现这一步骤。首先来说netbeans里没有这个侦听器。倒是有监听鼠标拖动的。我想问下,netbeans怎么处理这种情况,是说在哪弄下,它自己能处理,还是说自己改代码。最好给出1、2、3...简短的步骤说明,说出需要做什么就可以了,不用太详细。多谢!

时间: 2024-09-01 23:13:51

netbeans GUI中怎么给比如JPanel添加接口呀的相关文章

java swing中如何为一个窗体添加背景图片

问题描述 java swing中如何为一个窗体添加背景图片 java swing中如何为一个窗体添加背景图片,java swing中如何为一个窗体添加背景图片 解决方案 http://blog.csdn.net/caixiexin/article/details/6608919 解决方案二: 在JFrame中添加JPanel面板,然后就可以设置了.

让Struts2 在NetBeans 6中安家

让Struts2 在NetBeans 6中安家                           -- 在 NetBeans 6 中使用 Struts2 前言:NetBeans 6 和 Struts2 每次使用一种java编辑器或IDE(如eclipse)一个多小时后,总是发现自己已经在NetBeans里敲代码了.至于Struts2,这是一个融合了WebWork 和Struts1.X 的基于MVC的Web开发框架,使用相当广泛.   在当前的NetBeans6.1中你还找不到Struts2的影

让Struts2 在NetBeans 6中安家——在 NetBeans 6 中使用 Struts2

让Struts2 在NetBeans 6中安家                           -- 在 NetBeans 6 中使用 Struts2 前言:NetBeans 6 和 Struts2 每次使用一种java编辑器或IDE(如eclipse)一个多小时后,总是发现自己已经在NetBeans里敲代码了.至于Struts2,这是一个融合了WebWork 和Struts1.X 的基于MVC的Web开发框架,使用相当广泛.   在当前的NetBeans6.1中你还找不到Struts2的影

panel监听器-Jpanel添加鼠标监听器

问题描述 Jpanel添加鼠标监听器 部分代码如下,当点击退出系统是弹出退出!窗口,点击退出就关闭当前窗口,怎么实现 JTabbedPane tabbedPane = new JTabbedPane(); JPanel ExitPanel = new JPanel(); //退出面板 ExitPanel.setBackground(Color.white); ExitPanel.setLayout(new BoxLayout(ExitPanel, BoxLayout.X_AXIS)); if(E

mfc入门-vs2010中mfc如何在已添加的类中再给后加的对话编辑器添加变量

问题描述 vs2010中mfc如何在已添加的类中再给后加的对话编辑器添加变量 vs2010中mfc如何在已添加的类中再给类创建之后添加的对话编辑器添加变量 解决方案 需要对话框重新绑定,生成对话框类,然后你添加变量等,你先生成类了,就只能手动修改了,没法自动绑定到资源

matlab gui中使用定时器出错

问题描述 matlab gui中使用定时器出错 计算计时器 'timer-74' 的 TimerFcn 时出错 对象无效或已删除. 计算计时器 'timer-75' 的 TimerFcn 时出错 输入参数的数目不足 或者 计算计时器 'timer-98' 的 TimerFcn 时出错 对象无效或已删除. 计算计时器 'timer-99' 的 TimerFcn 时出错 H 必须是图形或图形子级的句柄. 我是这样编写的 定时器中,'TimerFcn',{@TimerFcn,handles} 回调函数

触屏产品的GUI设计:GUI中的开关交互设计

文章描述:按钮的状态和功能. 前几天偶尔看了一款触屏产品的GUI设计,发现了一个问题.下图是某个应用的开关,你能看明白吗? "on"表示的是当前状态是"开",还是表示当前状态是关,点击后打开呢? "off"表示的是当前状态是"关",还是表示当前状态是开,点击后关闭呢? 图一 下面是iphone的GUI中的开关,展现的很清楚. "on"表示的是状态,即当前为"开",点击后会关闭 "

在Dreamweaver8.0.2中为插入的Flash添加透明或其他参数

dreamweaver|dreamweaver8|插入|透明 Dreamweaver升级到8.0.2后,插入Flash时的代码会有所改变,这是Macromedia为解决IE中的Flash会出现控件激活框而作的更新.要为Flash添加透明等参数有两种方法. ● 用Dreamweaver的属性面板为插入的Flash添加透明属性,此方法简单实用. 使插入的Flash处于选择状态,点击属性面板中的"参数",在随即弹出的参数表中添加一行,参数名为"wmode",值为"

Dreamweaver8.0.2中为插入的Flash添加透明或其他参数

Dreamweaver升级到8.0.2后,插入Flash时的代码会有所改变,这是Macromedia为解决IE中的Flash会出现控件激活框而作的更新.要为Flash添加透明等参数有两种方法. ● 用Dreamweaver的属性面板为插入的Flash添加透明属性,此方法简单实用. 使插入的Flash处于选择状态,点击属性面板中的"参数",在随即弹出的参数表中添加一行,参数名为"wmode",值为"transparent".使用此方法时注意,若页面