Eclipse3.2插件项目如何调用其他类的方法

问题描述

最近要把一个应用程序做成Eclipse插件,在插件actions类中的run方法调用同一项目中的上级目录中的类方法,却调用不到这是一个测试类代码packageviewtest;importjavax.imageio.ImageIO;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.WindowConstants;importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Dimension;importjava.awt.Font;importjava.awt.Frame;importjava.awt.Image;importjavax.swing.JButton;importorg.jfree.chart.ChartFactory;importorg.jfree.chart.ChartPanel;importorg.jfree.chart.JFreeChart;importorg.jfree.chart.axis.NumberAxis;importorg.jfree.chart.axis.NumberTickUnit;importorg.jfree.chart.axis.ValueAxis;importorg.jfree.chart.plot.PlotOrientation;importorg.jfree.chart.plot.XYPlot;importorg.jfree.chart.renderer.xy.XYLineAndShapeRenderer;importorg.jfree.chart.title.TextTitle;importorg.jfree.data.Range;importorg.jfree.data.xy.XYDataset;importorg.jfree.data.xy.XYSeries;importorg.jfree.data.xy.XYSeriesCollection;importjava.awt.Point;importjava.io.File;importjava.io.IOException;publicclassjframeJFreechart{privatestaticfloatstart=0;privatestaticfloatend=40;privatestaticintnode=30;privateintlength=600;privateintheight=600;publicJFramejframe=null;privateJFramejFrame=null;//@jve:decl-index=0:visual-constraint="73,-5"privateJPaneljContentPane=null;privateJButtonjButton=null;//@jve:decl-index=0:visual-constraint="538,219"/***ThismethodinitializesjFrame**@returnjavax.swing.JFrame*/privateJFramegetJFrame(){if(jFrame==null){jFrame=newJFrame();jFrame.setSize(newDimension(606,327));jFrame.setContentPane(getJContentPane());jframe.setLayout(null);}returnjFrame;}/***ThismethodinitializesjContentPane**@returnjavax.swing.JPanel*/privateJPanelgetJContentPane(){if(jContentPane==null){jContentPane=newJPanel();jContentPane.setLayout(null);jContentPane.add(getJButton());jContentPane.add(getChartPanel());}returnjContentPane;}/***ThismethodinitializesjButton**@returnjavax.swing.JButton*/privateJButtongetJButton(){if(jButton==null){jButton=newJButton();jButton.setSize(newDimension(116,33));jButton.setLocation(newPoint(249,253));jButton.setText("LVOEMORE");}returnjButton;}//数据源封装privatestaticXYDatasetcreateDataset(){XYSeriesxyseries=newXYSeries("厚度曲线");//先产生XYSeries对象xyseries.add(1.0D,11.0D);xyseries.add(1.1D,12D);xyseries.add(1.2D,11D);xyseries.add(1.2D,13D);xyseries.add(2D,14D);xyseries.add(3D,10D);xyseries.add(4D,15D);xyseries.add(5D,19D);xyseries.add(6D,17D);xyseries.add(7D,14D);xyseries.add(8D,18D);//XYSeriesxyseries1=newXYSeries("Second");//xyseries1.add(1.0D,15D);//xyseries1.add(2D,17D);//xyseries1.add(3D,16D);//xyseries1.add(4D,18D);//xyseries1.add(5D,14D);//xyseries1.add(6D,14D);//xyseries1.add(7D,12D);//xyseries1.add(8D,11.0D);////XYSeriesxyseries2=newXYSeries("Third");//xyseries2.add(1D,16D);//xyseries2.add(2D,19D);//xyseries2.add(3D,14D);//xyseries2.add(4D,13D);//xyseries2.add(5D,12D);//xyseries2.add(6D,13D);//xyseries2.add(7D,16D);//xyseries2.add(8D,13D);XYSeriesCollectionxyseriescollection=newXYSeriesCollection();//再用XYSeriesCollection添加入XYSeries//对象xyseriescollection.addSeries(xyseries);//xyseriescollection.addSeries(xyseries1);//xyseriescollection.addSeries(xyseries2);returnxyseriescollection;}publicstaticJFreeChartcreateJFreeChart(){//创建图表JFreeChartchart=ChartFactory.createXYLineChart("测厚曲线","采样点","厚度值",createDataset(),PlotOrientation.VERTICAL,true,true,true);chart.addSubtitle(newTextTitle("http://www.51sensors.com",newFont("Arial",Font.BOLD,15)));//设置报表背景Imageimage=null;try{image=ImageIO.read(newFile("D:\http_imgload.jpg"));}catch(IOExceptione){e.printStackTrace();}chart.setBackgroundImage(image);//设置背景透明度:0.0--1.0chart.setBackgroundImageAlpha(0.5f);//设置非数据域颜色chart.setBackgroundPaint(Color.cyan);//设置边界线条chart.setBorderPaint(Color.RED);chart.setBorderVisible(true);//数据区设置XYPlotplot=(XYPlot)chart.getPlot();//设置背景为灰色plot.setBackgroundPaint(Color.DARK_GRAY);//X、Y轴属性设置NumberAxisrangeAxis=(NumberAxis)plot.getRangeAxis();//数据轴的数据标签(可以只显示整数标签,需要将AutoTickUnitSelection设false)rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());//是否显示零点rangeAxis.setAutoRangeIncludesZero(true);//Y轴名称的倾斜角度rangeAxis.setLabelAngle(0);//设置数据轴的数据范围rangeAxis.setRange(newRange(start,end));//设置刻度波动值,可控制刻度的个数。intnodenum=(int)((end-start)/node);if(nodenum==1){nodenum=2;}rangeAxis.setTickUnit(newNumberTickUnit(nodenum));//数据线设置//显示折点数据//LineAndShapeRendererlineandshaperenderer=(LineAndShapeRenderer)//plot//.getRenderer();//lineandshaperenderer//.setBaseItemLabelGenerator(newStandardCategoryItemLabelGenerator());//lineandshaperenderer.setBaseItemLabelsVisible(true);//设置纵轴的字体格式rangeAxis.setTickLabelFont(newFont("Arial",Font.BOLD,15));//设置坐标轴是否显示箭头ValueAxisvalueaxis=plot.getDomainAxis();valueaxis.setPositiveArrowVisible(true);//设置每个曲线的颜色(两种设置方式)XYLineAndShapeRendererrenderer=(XYLineAndShapeRenderer)plot.getRenderer();renderer.setSeriesPaint(0,Color.cyan);renderer.setSeriesPaint(1,newColor(0,100,255));renderer.setSeriesPaint(2,Color.green);returnchart;}publicChartPanelgetChartPanel(){JFreeChartchart=createJFreeChart();ChartPanelchartPanel=newChartPanel(chart);chartPanel.setPreferredSize(newDimension(length,height));//setContentPane(chartPanel);chartPanel.setSize(300,300);returnchartPanel;}publicstaticJPanelcreateDemoPanel(){//生成jfreechart对象JFreeChartjfreechart=createJFreeChart();returnnewChartPanel(jfreechart);}publicstaticvoidmain(String[]args){JFramejframe=newJFrame("testchart");//jframe.pack();jframe.setSize(700,700);jframe.getContentPane().add(jframeJFreechart.createDemoPanel());//jframe.getContentPane().add(new//jframeJFreechart().getJContentPane().add(new//jframeJFreechart().getJButton()));jframe.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);jframe.setVisible(true);}}这是插件项目actions类run方法中对上面类的调用/***Theactionhasbeenactivated.Theargumentofthemethodrepresentsthe*'real'actionsittingintheworkbenchUI.**@seeIWorkbenchWindowActionDelegate#run*/publicvoidrun(IActionaction){jfreecharttestjft=newjfreecharttest("thisisthethicknessline");jft.pack();RefineryUtilities.centerFrameOnScreen(jft);jft.setVisible(true);}运行该结果是没有反应,都不进入run方法。很无解,求大侠赐教!

时间: 2024-10-14 08:54:49

Eclipse3.2插件项目如何调用其他类的方法的相关文章

C#中派生类的方法里的匿名delegate调用基类的方法会产生无法验证的代码

看来阅读一个开发人员的blog是获取知识的一个捷径,特别是当那位开发人员负责的产品是你天天都用的基础设施之一,例如说--编译器.在阅读Eric Lippert的blog时,我无意中了解到了很多我以前所不熟悉的知识,例如说一些语言特性,一些编程思想之类:但更有趣的,我了解到了很多他所负责的产品中的诡异地方. 开篇花絮: 假如我们现在有一个枚举类型E,其中有一个枚举值的名字是x. 你或许知道这个表达式是对的: C#代码 0 | E.x 但是你或许不知道这个表达式(根据语言规范应该)是错的: C#代码

service-SSH项目 Action调用Service层的方法失败。

问题描述 SSH项目 Action调用Service层的方法失败. 使用注解方式集成SSH框架,但是在Action中调用service的方法,没有进入该方法, 不知道为什么.求解.. 解决方案 service在action中注入了吗

python-Python的类怎么调用其他类的方法?

问题描述 Python的类怎么调用其他类的方法? 事情是这样的.我用wxpython写了一个窗体程序,定义了一个"MyButton"类(继承了Button)和一个"TextBox"类(继承了TextCtrl),会产生一个按钮和一个文本框.点击按钮就能清空文本框里的内容.将这个特性定义成了Button的方法,可是怎么去调用TextBox里的Clear()方法?这个时候还没有定义对象. 解决方案 你可以定义Text对象,然后放到self中. 解决方案二: 用回调函数,将

android-关于Android如何在不同Activity调用一个类的方法不同操作?

问题描述 关于Android如何在不同Activity调用一个类的方法不同操作? 我现在有个activity是全局运行的(简称A),还有个MainActivity(简称B),现在写了一个类(简称C),C中有个方法,A和B都要用到(这个实现了),我想实现B用到这个方法的时候会做一些额外的事.如何是用呢class CustomMessageHandler extends AVIMMessageHandler { public static String ME=""msg"&quo

php文件调用一个类或方法,生成一个log文件,log文件上输出调用的时间和内容,该怎么写

问题描述 php文件调用一个类或方法,生成一个log文件,log文件上输出调用的时间和内容,该怎么写 php文件调用一个类或方法,生成一个log文件,log文件上输出调用的时间和内容,该怎么写 解决方案 /** 自定义日志 @param string $type @param string $content @return bool */ function mylog($type="",$content=""){ if(!$content || !$type){ r

A类中直接实例化B类,然后调用B类的方法不行吗?

问题描述 publicclassSuperMarket{//初始化仓库CangKuck=newCangKu();//为什么在下边用ck.不出方法来,但是在SuperMarket的构造函数里就可以???????publicSuperMarket(){ck.DaoRuGoods("Acer",1000);ck.DaoRuGoods("IPhone",1000);ck.DaoRuGoods("Cannoon",1000);ck.DaoRuGoods(&

Android中在WebView里实现Javascript调用Java类的方法_Android

为了方便网页和Android应用的交互,Android系统提供了WebView中JavaScript网页脚本调用Java类方法的机制.只要调用addJavascriptInterface方法即可映射一个Java对象到JavaScript对象上. 1.映射Java对象到JavaScript对象上 复制代码 代码如下: mWebView = (WebView) findViewById(R.id.wv_content); mWebView.setVerticalScrollbarOverlay(tr

kettle中使用js调用java类的方法_java

1. 需要事先将jar包 放在kettle 的 libext 目录,kettle 在启动时会自动加载libext 目录下的所有 jar 包. 2. modified java script 步骤要选中 compatibility mode,并将 content 设置为输出的字段. 代码如下: 复制代码 代码如下:     var 变量 = new Packages.包名(参数 );

C# 窗体程序自定义类 调用form中的方法

问题描述 我在窗体中弄了一个文本框新建一个类做一些操作我想把这些操作的过程输出到这个文件框中即调用下面这个在From中的方法:publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){}publicvoidShowInfo(stringInfo){textBox1.AppendText(Info);textBox1.AppendT