重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我认为应该如此操作:(我是这样做的)
成都创新互联专业为企业提供加查网站建设、加查做网站、加查网站设计、加查网站制作等企业网站建设、网页设计与制作、加查企业网站模板建站服务,10余年加查做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
1、划出类图
2、做一个组件图(选择组建的属性,将language选为java或其他的语言)
3、将组件图拖到该组件所需要组装的类图的模型上(在树形视图中操作)
4、这样,在选中类图的模型点击右键时,就会有java蔡单项,在那里就可以生成java代码。
希望这篇文章能帮各位兄弟省点时间。在java中使实现右键菜单十分简单,只需用到一个控件:PopupMenu.
首先,需要声明一个PopupMenu对像。
PopupMenu popupMenu1 = new PopupMenu();
然后新建一些子菜单,这里我们使用建立三个菜单项
MenuItem menuItem1 = new MenuItem();
MenuItem menuItem2 = new MenuItem();
MenuItem menuItem3 = new MenuItem();
然后再出初化,并加入监听事件中:
menuItem1.setLabel("菜单1");
menuItem1.addActionListener(new java.awt.event.ActionListener() { //菜单1的事件监听
public void actionPerformed(ActionEvent e) {
menuItem1_actionPerformed(e); //菜单事件函数
}
});
menuItem2.setLabel("菜单2");
menuItem3.setLabel("菜单3");
popupMenu1.add(menuItem1);
popupMenu1.add(menuItem2);
popupMenu1.add(menuItem3);
//在this中加入popupMenu1
add(popupMenu1);
这时,菜单已经加进程序中了,现在我们需要做的就是在点击右键时显示。
先在init中加入鼠标的单击事件,
this.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
this_mousePressed(e);
}
});
再在this_mousePressed(e);中将菜单显示出来
void this_mousePressed(MouseEvent e) {
int mods=e.getModifiers();
//鼠标右键
if((modsInputEvent.BUTTON3_MASK)!=0){
//弹出菜单
popupMenu1.show(this,e.getX(),e.getY());
}
}
//菜单1事件
void menuItem1_actionPerformed(ActionEvent e) {
//菜单事件1
}
好了,讲到这里已经全部结束,是不是非常简单啊
这里有一个继承Panel类的完整的例子
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Panel1 extends JPanel {
PopupMenu popupMenu1 = new PopupMenu();
MenuItem menuItem1 = new MenuItem();
MenuItem menuItem2 = new MenuItem();
MenuItem menuItem3 = new MenuItem();
public Panel1() {
try {
jbInit();
}
catch(Exception ex) {
ex.printStackTrace();
}
}
void jbInit() throws Exception {
this.setLayout(null);
menuItem1.setLabel("菜单1");
menuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
menuItem1_actionPerformed(e);
}
});
menuItem2.setLabel("菜单2");
menuItem3.setLabel("菜单3");
this.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
this_mousePressed(e);
}
});
popupMenu1.add(menuItem1);
popupMenu1.add(menuItem2);
popupMenu1.add(menuItem3);
add(popupMenu1);
}
void this_mousePressed(MouseEvent e) {
int mods=e.getModifiers();
//鼠标右键
if((modsInputEvent.BUTTON3_MASK)!=0){
//弹出菜单
popupMenu1.show(this,e.getX(),e.getY());
}
}
void menuItem1_actionPerformed(ActionEvent e) {
//菜单事件
}
}
好了,你试试看吧,这个还是我在远标java那边接触到的知识点。
myeclipse编写java代码的步骤如下:
1.新建一个工程,取任意名字。
2.在工程目录的src目录下,创建一个java文件,如下图,名字以小写开头,后跟字母数字或者下划线。
3.打开刚才创建的java代码,就可以进行编写代码了。
在java.awt包中有两个类可以用于弹出式菜单,PopupMenu(弹出式菜单),MenuItem(菜单项),
在 java.awt.event 包的MouseListener与MouseEvent 可用于鼠标事件
下面是代码(是从别的地方借用过来的,删除了一些与此问题无关的内容):
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class PopupMenuDemo extends JFrame implements ActionListener
{
JButton btnTest=new JButton("Test");
JTextArea textArea=new JTextArea();
PopupMenu pMenu=new PopupMenu(); //创建弹出式菜单,下面三项是菜单项
MenuItem mItemCopy=new MenuItem("复制");
MenuItem mItemPaste=new MenuItem("粘贴");
MenuItem mItemCut=new MenuItem("剪切");
MouseAdapter mouseAdapter=new MouseAdapter()//监听鼠标事件
{
public void mouseClicked(MouseEvent event)
{
if(event.getButton()==MouseEvent.BUTTON3)//只响应鼠标右键单击事件
{
pMenu.show(textArea,event.getX(),event.getY());//在鼠标位置显示弹出式菜单
}
}
};
ActionListener menuAction=new ActionListener()//响应单击菜单项的事件,只是示例,
{//具体内容可自己编写
public void actionPerformed(ActionEvent e)
{
MenuItem item=(MenuItem)e.getSource();
if(item==mItemCopy) //单击了“复制”菜单项
{
JOptionPane.showMessageDialog(null,"复制");
}
else if(item==mItemPaste) //“粘贴”菜单项
{
JOptionPane.showMessageDialog(null,"粘贴");
}
else
{
JOptionPane.showMessageDialog(null,"剪切"); //“剪切”菜单项
}
}
};
public PopupMenuDemo()
{
setTitle("Test");
setSize(300,300);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(btnTest,BorderLayout.NORTH);
add(textArea,BorderLayout.CENTER);
textArea.add(pMenu); //弹出式菜单加入到文本框中,否则不能显示
textArea.addMouseListener(mouseAdapter); //文本框加入鼠标监听器
pMenu.add(mItemCopy); //菜单项的单击事件监听器
mItemCopy.addActionListener(menuAction);
pMenu.add(mItemPaste);
mItemPaste.addActionListener(menuAction);
pMenu.add(mItemCut);
mItemCut.addActionListener(menuAction);
btnTest.addActionListener(this);
}
public static void main(String... args)
{
new PopupMenuDemo().setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null,"测试功能");
}
}
使用Getter和Setter是实现面向对象思想的重要一部分。
面向对象三大要素,封装,继承,多态。
封装就是把关联紧密的部分当成一个整体进行操作。把很多属性,都变成对象内部的。
getter就是外部从对象内部取出数据,
setter就是外部向内部输入数据。
有一些外部对象是可以从对象内部取数据的,但是不能往里面放数据。
有一些外部对象是可以向对象内部放数据的,但是不能取里面的数据。
我们可以通过Getter和Setter进行控制。
就好像人体,有胃,有肠子。都是用来消化食物的。正常来说(不考虑某些变态),都是从嘴巴吃东西吧。虽然这些食物最后会到胃,肠子里,我们也不能直接开刀,往胃里放东西。
面向对象里的对象,可以看成人。如果你要往里面放东西,必须调用Setter。不能把对象肢解了,放进去。因为我很有可能要对你的数据进行加工之后,再存储。你不能蛮干。
Getter也是,食物处理完了。变成便便。你要取出来,不能直接从肠子里拿出来把。还是得从屁屁出来吧。所以你只能按照我的规矩,用我给的方法,才能安全的对人体进行操作。
上面说的好恶心啊……吐了……
所以面向对象(Java就是典型的面向对象语言)需要使用Setter Getter来取放数据。
总而言之,就是为了内部的安全。同时也是给其他对象提供方便。因为我不需要了解你的工作机制,不需要知道应该把数据放到哪里,我直接调用你的Setter就可以了。
纯手打,无抄袭。有问题可以追问。