2楼说的是对的俄,可是我找不到啊, 我帖一下code 提一段是jfreechart的 ---------------------------------/** * @author hsun * use the data from the expression file to plot the modules seperately * *//** * System.exit(0); ---null */public class Plot extends ApplicationFrame {
private static final long serialVersionUID = 1L; private static Plot instance; private List plotList = new ArrayList(); private List EMList = new ArrayList(); private Map calculatedModule = new HashMap();
//存储计算过的绘图时module的gene值。key 是module名,vlaue是一个各(gene)点的ArrayList。 public static synchronized Plot getInstance() { if ( instance ==null){ instance = new Plot("Module Plot"); } return instance; }
/* *清空plotList列表。 */
public void cleanPlotList(){ getPlotList().clear(); }
/* *plotList列表中加入新的moduleName。 */
public void addPlot(String moduleName){ Iterator it=getPlotList().iterator(); boolean exist= false; while(it.hasNext()){ String temp=(String)it.next(); if (temp.equals(moduleName)){ exist= true; //break; } } if (exist == false) getPlotList().add(moduleName); }
/** * 计算显示plot图所需的数据--result--module names */
private ArrayList calLineData(){ ArrayList result = new ArrayList(); Iterator it = getPlotList().iterator(); while (it.hasNext()){ String selectedModule=(String)it.next(); List averageList = null; if (calculatedModule.containsKey(selectedModule)){ //module的plot值计算过 averageList = (List)calculatedModule.get(selectedModule);// }else{ //module的plot值未计算过 averageList = calAverage(selectedModule); } result.add(averageList); } return result; }
private List calAverage(String modulenme){
OriginalModuleList oml =OriginalModuleList.getInstance(); Module m = oml.getModule(modulenme); ArrayList genes = m.getX(); ArrayList selectedGenes = new ArrayList(); Iterator it1 = genes.iterator();//遍历所有的gene while (it1.hasNext()){ String gene=(String)it1.next(); int geneCode = Integer.parseInt(gene)-1; selectedGenes.add(getEMList().get(geneCode));
} return result;//待画的数据,看来是plot的时候的横坐标有问题了。上面的算法没有任何问题 } /** * Creates a new demo. * * @param title the frame title. */ public Plot(final String title) {
super(title); } public void createPlot(String tilte){ setTitle(tilte); final XYDataset dataset = createDataset(); final JFreeChart chart = createChart(dataset); final ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new java.awt.Dimension(1000, 270)); setContentPane(chartPanel); }
/** * Creates a sample dataset. * * @return a sample dataset. */ private XYDataset createDataset() {
final XYSeriesCollection dataset = new XYSeriesCollection(); ArrayList modulelines = calLineData(); for (int i = 0 ;i < modulelines.size(); i++){ final XYSeries series0 = new XYSeries((String)getPlotList().get(i)); //ArrayList temp = (ArrayList)dataAarryList.get(i); // System.out.println(modulelines.get(i).getClass()); ArrayList data = (ArrayList)modulelines.get(i); // float[] data=(float[])modulelines.get(i); for(int j = 0; j <data.size(); j++){ series0.add(j,Float.parseFloat(data.get(j).toString())); } dataset.addSeries(series0); //System.out.println(dataset);//--------test } return dataset;
}
/** * Creates a chart. * * @param dataset the data for the chart. * * @return a chart. */ private JFreeChart createChart(final XYDataset dataset) {
// create the chart... final JFreeChart chart = ChartFactory.createXYLineChart( "Module Plot", // chart title "Conditions", // x axis label "Genes", // y axis label dataset, // data PlotOrientation.VERTICAL, true, // include legend true, // tooltips false // urls );
// NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART... chart.setBackgroundPaint(Color.white);
// get a reference to the plot for further customisation... XYPlot plot = (XYPlot) chart.getPlot(); plot.setBackgroundPaint(Color.lightGray); plot.setDomainGridlinePaint(Color.white); plot.setRangeGridlinePaint(Color.white);
XYLineAndShapeRenderer r = (XYLineAndShapeRenderer) plot.getRenderer(); r.setShapesVisible(false);
return chart;
}
/** * Starting point for the demonstration application. * * @param args ignored. * @throws Exception * @throws IOException */
private static NumberAxis getRangeAxis() { // TODO Auto-generated method stub return null; } public static long getSerialVersionUID() { return serialVersionUID; }
public void setEMList(List aEMList) { EMList = aEMList; }
public List getPlotList() { return plotList; }
public void setPlotList(List aPlotList) { plotList = aPlotList; }
public List getEMList() { return EMList; }
}
第二段是GuiFrame的,谢谢大家!!! public class GuiFrame extends JFrame implements Observer { private static final long serialVersionUID = -2938598205234750438L; JPanel $contentPane; JMenuBar $jMenuBar = new JMenuBar(); JMenu $jMenuFile = new JMenu(); JMenuItem $jMenuFileSaveASPNG = new JMenuItem(); JMenuItem $jMenuFileSaveASJPG = new JMenuItem(); JMenuItem $jMenuFileSaveASSVG = new JMenuItem(); JMenuItem $jMenuFileExit = new JMenuItem(); JMenu $jMenuHelp = new JMenu(); JMenuItem $jMenuHelpAbout = new JMenuItem(); JMenu $jMenuView = new JMenu(); JMenu $jMenuViewPlugins = new JMenu(); JMenu $jMenuSelections = new JMenu(); JMenuItem $jMenuSelectionsRandom= new JMenuItem(); JMenuItem $jMenuSelectionsRelative = new JMenuItem(); JMenu $jMenuOrder = new JMenu(); JMenuItem $jMenuOrderKmeans = new JMenuItem(); JMenuItem $jMenuOrderOverlap = new JMenuItem(); JMenuItem $jMenuOrderScore = new JMenuItem();
package nc.ui.test.chart;import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.CategoryItemRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;public class BarChart3DDemo3 extends ApplicationFrame
{ public BarChart3DDemo3(String s)
{
super(s);
CategoryDataset categorydataset = createDataset();
JFreeChart jfreechart = createChart(categorydataset);
ChartPanel chartpanel = new ChartPanel(jfreechart);
chartpanel.setPreferredSize(new Dimension(500, 270));
setContentPane(chartpanel);
} private static CategoryDataset createDataset()
{
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
defaultcategorydataset.addValue(25D, "Series 1", "Category 1");
defaultcategorydataset.addValue(34D, "Series 1", "Category 2");
defaultcategorydataset.addValue(19D, "Series 2", "Category 1");
defaultcategorydataset.addValue(29D, "Series 2", "Category 2");
defaultcategorydataset.addValue(41D, "Series 3", "Category 1");
defaultcategorydataset.addValue(33D, "Series 3", "Category 2");
return defaultcategorydataset;
} private static JFreeChart createChart(CategoryDataset categorydataset)
{
JFreeChart jfreechart = ChartFactory.createBarChart3D("3D Bar Chart Demo", "Category", "Value", categorydataset, PlotOrientation.VERTICAL, true, true, false);
CategoryPlot categoryplot = jfreechart.getCategoryPlot();
CategoryAxis categoryaxis = categoryplot.getDomainAxis();
categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(0.39269908169872414D));
CategoryItemRenderer categoryitemrenderer = categoryplot.getRenderer();
categoryitemrenderer.setItemLabelsVisible(true);
BarRenderer barrenderer = (BarRenderer)categoryitemrenderer;
barrenderer.setItemMargin(0.20000000000000001D);
return jfreechart;
} public static JPanel createDemoPanel()
{
JFreeChart jfreechart = createChart(createDataset());
return new ChartPanel(jfreechart);
} public static void main(String args[])
{
BarChart3DDemo3 barchart3ddemo3 = new BarChart3DDemo3("3D Bar Chart Demo 3");
barchart3ddemo3.pack();
RefineryUtilities.centerFrameOnScreen(barchart3ddemo3);
barchart3ddemo3.setVisible(true);
}
}试一下,可以用的
我帖一下code
提一段是jfreechart的
---------------------------------/**
* @author hsun
* use the data from the expression file to plot the modules seperately
* *//**
* System.exit(0); ---null
*/public class Plot extends ApplicationFrame {
private static final long serialVersionUID = 1L;
private static Plot instance;
private List plotList = new ArrayList();
private List EMList = new ArrayList();
private Map calculatedModule = new HashMap();
//存储计算过的绘图时module的gene值。key 是module名,vlaue是一个各(gene)点的ArrayList。
public static synchronized Plot getInstance() {
if ( instance ==null){
instance = new Plot("Module Plot");
}
return instance;
}
/*
*清空plotList列表。
*/
public void cleanPlotList(){
getPlotList().clear();
}
/*
*plotList列表中加入新的moduleName。
*/
public void addPlot(String moduleName){ Iterator it=getPlotList().iterator();
boolean exist= false;
while(it.hasNext()){
String temp=(String)it.next();
if (temp.equals(moduleName)){
exist= true;
//break;
}
} if (exist == false) getPlotList().add(moduleName);
}
/**
* 计算显示plot图所需的数据--result--module names
*/
private ArrayList calLineData(){
ArrayList result = new ArrayList();
Iterator it = getPlotList().iterator();
while (it.hasNext()){
String selectedModule=(String)it.next();
List averageList = null;
if (calculatedModule.containsKey(selectedModule)){
//module的plot值计算过
averageList = (List)calculatedModule.get(selectedModule);//
}else{
//module的plot值未计算过
averageList = calAverage(selectedModule);
}
result.add(averageList);
}
return result;
}
private List calAverage(String modulenme){
OriginalModuleList oml =OriginalModuleList.getInstance();
Module m = oml.getModule(modulenme);
ArrayList genes = m.getX();
ArrayList selectedGenes = new ArrayList();
Iterator it1 = genes.iterator();//遍历所有的gene
while (it1.hasNext()){
String gene=(String)it1.next();
int geneCode = Integer.parseInt(gene)-1; selectedGenes.add(getEMList().get(geneCode));
//System.out.println(selectedGenes.add(getEMList().get(geneCode)));//----test
}
ArrayList result = new ArrayList();
ArrayList temp =(ArrayList) getEMList().get(0);//map's value
int length = temp.size();//对俄,condition的总共的个数(大矩阵的列数额)
int size = ((ArrayList) selectedGenes.get(0)).size();
int[]count = new int[size];//13
float[] avg=new float[size];//13
for (int i=0;i<((ArrayList)selectedGenes.get(0)).size();i++){//遍历所有的arrayList=4
for (int j=0;j<selectedGenes.size();j++){//所有的列数(condition)
ArrayList temp1 = (ArrayList)selectedGenes.get(j); //第i行/条数据
float value = (Float)temp1.get(i);
if (value == 0.0){
count[i]++;
}
avg[i]+=value/(selectedGenes.size()-count[i]+1);//第1,2,3,4条的第一个都放在avg[0]里面--数组的第一个元素里面。
}
System.out.println(avg[1]); result.add(avg[i]);
//System.out.println(result.get);
}
return result;//待画的数据,看来是plot的时候的横坐标有问题了。上面的算法没有任何问题
}
/**
* Creates a new demo.
*
* @param title the frame title.
*/ public Plot(final String title) {
super(title);
} public void createPlot(String tilte){
setTitle(tilte);
final XYDataset dataset = createDataset();
final JFreeChart chart = createChart(dataset);
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(1000, 270));
setContentPane(chartPanel);
}
/**
* Creates a sample dataset.
*
* @return a sample dataset.
*/
private XYDataset createDataset() {
final XYSeriesCollection dataset = new XYSeriesCollection();
ArrayList modulelines = calLineData();
for (int i = 0 ;i < modulelines.size(); i++){
final XYSeries series0 = new XYSeries((String)getPlotList().get(i));
//ArrayList temp = (ArrayList)dataAarryList.get(i);
// System.out.println(modulelines.get(i).getClass());
ArrayList data = (ArrayList)modulelines.get(i);
// float[] data=(float[])modulelines.get(i);
for(int j = 0; j <data.size(); j++){ series0.add(j,Float.parseFloat(data.get(j).toString()));
}
dataset.addSeries(series0);
//System.out.println(dataset);//--------test
}
return dataset;
}
/**
* Creates a chart.
*
* @param dataset the data for the chart.
*
* @return a chart.
*/
private JFreeChart createChart(final XYDataset dataset) {
// create the chart...
final JFreeChart chart = ChartFactory.createXYLineChart(
"Module Plot", // chart title
"Conditions", // x axis label
"Genes", // y axis label
dataset, // data
PlotOrientation.VERTICAL,
true, // include legend
true, // tooltips
false // urls
);
// NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
chart.setBackgroundPaint(Color.white);
// get a reference to the plot for further customisation...
XYPlot plot = (XYPlot) chart.getPlot();
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinePaint(Color.white);
XYLineAndShapeRenderer r = (XYLineAndShapeRenderer) plot.getRenderer();
r.setShapesVisible(false);
return chart;
}
/**
* Starting point for the demonstration application.
*
* @param args ignored.
* @throws Exception
* @throws IOException
*/
private static NumberAxis getRangeAxis() {
// TODO Auto-generated method stub
return null;
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
public void setEMList(List aEMList) {
EMList = aEMList;
}
public List getPlotList() {
return plotList;
}
public void setPlotList(List aPlotList) {
plotList = aPlotList;
}
public List getEMList() {
return EMList;
}
}
public class GuiFrame
extends JFrame implements Observer {
private static final long serialVersionUID = -2938598205234750438L;
JPanel $contentPane;
JMenuBar $jMenuBar = new JMenuBar();
JMenu $jMenuFile = new JMenu();
JMenuItem $jMenuFileSaveASPNG = new JMenuItem();
JMenuItem $jMenuFileSaveASJPG = new JMenuItem();
JMenuItem $jMenuFileSaveASSVG = new JMenuItem();
JMenuItem $jMenuFileExit = new JMenuItem();
JMenu $jMenuHelp = new JMenu();
JMenuItem $jMenuHelpAbout = new JMenuItem();
JMenu $jMenuView = new JMenu();
JMenu $jMenuViewPlugins = new JMenu();
JMenu $jMenuSelections = new JMenu();
JMenuItem $jMenuSelectionsRandom= new JMenuItem();
JMenuItem $jMenuSelectionsRelative = new JMenuItem();
JMenu $jMenuOrder = new JMenu();
JMenuItem $jMenuOrderKmeans = new JMenuItem();
JMenuItem $jMenuOrderOverlap = new JMenuItem();
JMenuItem $jMenuOrderScore = new JMenuItem();
JLabel $statusBar;
TaskPanel $taskPanel; ContentManager $contentManager; Hashtable $pluginList = new Hashtable();
InfiniteProgressPanel $glassPane = new InfiniteProgressPanel(); /**
* Construct the frame
*/
public GuiFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
LogManager logManager = LogManager.getLogManager();
logManager.addObserver(this);
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
} /**
* Component initialization
* @throws Exception exception
*/
private void jbInit() throws Exception {
initGui();
initPlugins();
initMenuBar();
}
/**
* initGui
*/
private void initGui() {
$contentPane = (JPanel)this.getContentPane();
this.setIconImage(new ImageIcon("icons\\small_logo.png").getImage());
this.setTitle("modulevisualization v0.1");
this.setSize(new Dimension(1600, 1000));
$taskPanel = new TaskPanel(this);
$taskPanel.setMinimumSize(new Dimension(220, 220));
$taskPanel.setMaximumSize(new Dimension(220, 220));
$taskPanel.setPreferredSize(new Dimension(220, 220));
$contentManager = new ContentManager($taskPanel);
$statusBar = new JLabel("test"); $contentPane.add($taskPanel, BorderLayout.WEST);
$contentPane.add($statusBar, BorderLayout.SOUTH);
$contentPane.add($contentManager.getContentPanel());
this.setGlassPane($glassPane);
} /**
* initPlugins
*/
private void initPlugins() throws InstantiationException,
IllegalAccessException, IllegalArgumentException,
InvocationTargetException, SecurityException, ClassNotFoundException {
SettingsManager settingsManager = SettingsManager.getSettingsManager();
String[] plugins = settingsManager.getActivePluginNames();
for (int i = 0; i < plugins.length; i++) {
String fullname = settingsManager.getfullName(plugins[i]);
if (fullname != null) {
$pluginList.put(plugins[i], instantiatePlugin(fullname));
}
}
}
/**
* initMenuBar
*/
private void initMenuBar() {
this.setJMenuBar($jMenuBar);
$jMenuFile.setText("File");
$jMenuFileSaveASPNG.setText("Save as PNG");
$jMenuFileSaveASPNG.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileSaveAsPNG_actionPerformed(e);
}
});
$jMenuFileSaveASJPG.setText("Save as JPG");
$jMenuFileSaveASJPG.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileSaveAsJPG_actionPerformed(e);
}
});
$jMenuFileSaveASSVG.setText("Save as SVG");
$jMenuFileSaveASSVG.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileSaveAsSVG_actionPerformed(e);
}
});
$jMenuFileExit.setText("Exit");
$jMenuFileExit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileExit_actionPerformed(e);
}
});
$jMenuFile.add($jMenuFileSaveASSVG);
$jMenuFile.add($jMenuFileSaveASPNG);
$jMenuFile.add($jMenuFileSaveASJPG);
$jMenuFile.add($jMenuFileExit);
$jMenuHelp.setText("Help");
$jMenuHelpAbout.setText("About");
$jMenuHelpAbout.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuHelpAbout_actionPerformed(e);
}
});
$jMenuView.setText("View");
$jMenuViewPlugins.setText("Plugins");
$jMenuView.add($jMenuViewPlugins);
SettingsManager settingsManager = SettingsManager.getSettingsManager();
String[] pluginNames = settingsManager.getPluginNames();
Hashtable groupList = new Hashtable(); for (int i = 0; i < pluginNames.length; i++) {
boolean setting = settingsManager.isPluginActive(pluginNames[i]);
JCheckBoxMenuItem plugin;
if (setting) {
plugin = new JCheckBoxMenuItem(pluginNames[i], true);
}
else {
plugin = new JCheckBoxMenuItem(pluginNames[i], false);
}
plugin.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuViewPlugin_actionPerformed(e);
}
});
String fullname = settingsManager.getfullName(pluginNames[i]);
if (fullname.startsWith("edu.tul.Plugins")) {
String[] fullnamesplitted = fullname.split("\\.");
JMenu parentGroup = (JMenu) groupList.get(fullnamesplitted[3]);
if (parentGroup != null) {
parentGroup.add(plugin);
}
else {
parentGroup = new JMenu(fullnamesplitted[3]);
groupList.put(fullnamesplitted[3], parentGroup);
$jMenuViewPlugins.add(parentGroup);
parentGroup.add(plugin);
}
}
else {
$jMenuViewPlugins.add(plugin);
}
}
$jMenuHelp.add($jMenuHelpAbout);
$jMenuBar.add($jMenuFile);
$jMenuBar.add($jMenuView);
$jMenuBar.add($jMenuHelp); }
下面接着哈
/**
* This function takes astring as input parameter and returns an instance of a
* Plugin class of the correct type.
*
* @param fullname The name of the class that should be instantiated.
* @return Plugin, an instance of the correct class.
* @throws ClassNotFoundException
* @throws SecurityException
* @throws InvocationTargetException
* @throws IllegalArgumentException
* @throws IllegalAccessException
* @throws InstantiationException
*/
protected Plugin instantiatePlugin(String fullname) throws
ClassNotFoundException, SecurityException, InvocationTargetException,
IllegalArgumentException,
IllegalAccessException, InstantiationException { Constructor[] cArray = Class.forName(fullname).getConstructors();
Constructor c = cArray[0];
Class[] classArray = c.getParameterTypes();
if (classArray.length == 1 && classArray[0].equals(ContentManager.class)) {
Object[] oArray = new Object[1];
oArray[0] = this.$contentManager;
return (Plugin) c.newInstance(oArray);
}
else if (classArray.length == 2 && classArray[0].equals(ContentManager.class)
&& classArray[1].equals(JFrame.class)) {
Object[] oArray = new Object[2];
oArray[0] = this.$contentManager;
oArray[1] = this;
return (Plugin) c.newInstance(oArray);
}
return null;
}
/**
* Overridden so we can exit when window is closed
* @param e WindowEvent
*/
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
SettingsManager sm = SettingsManager.getSettingsManager();
sm.writeToFile();
System.exit(0);
}
}
/**
* File | Exit action performed
* @param e ActionEvent
*/
public void jMenuFileExit_actionPerformed(ActionEvent e) {
LogManager lMan = LogManager.getLogManager();
lMan.fireLogEvent(LogManager.EXIT, "");
}
/**
* File | SaveAsPNG action performed
*
* @param e ActionEvent
*/
public void jMenuFileSaveAsPNG_actionPerformed(ActionEvent e) {
JFileChooser fileChooser =
new JFileChooser();
fileChooser.setDialogTitle("Save as PNG");
fileChooser.setFileHidingEnabled(false);
fileChooser.setFileSelectionMode
(JFileChooser.FILES_ONLY);
fileChooser.addChoosableFileFilter(new ImageFileFilter(".png"));
int choice = fileChooser.showSaveDialog(this);
if (choice == JFileChooser.APPROVE_OPTION) {
File f = fileChooser.getSelectedFile();
if (!f.getAbsolutePath().endsWith(".png")) {
f = new File(f.getAbsolutePath() + ".png");
}
LogManager lMan = LogManager.getLogManager();
lMan.fireLogEvent(LogManager.SAVEASPNG, f); }
} /**
* File | SaveAsJPG action performed
* @param e ActionEvent
*/
public void jMenuFileSaveAsJPG_actionPerformed(ActionEvent e) {
JFileChooser fileChooser =
new JFileChooser();
fileChooser.setDialogTitle("Save as JPG");
fileChooser.setFileHidingEnabled(false);
fileChooser.setFileSelectionMode
(JFileChooser.FILES_ONLY);
fileChooser.addChoosableFileFilter(new ImageFileFilter(".jpg"));
int choice = fileChooser.showSaveDialog(this);
if (choice == JFileChooser.APPROVE_OPTION) {
File f = fileChooser.getSelectedFile();
if (!f.getAbsolutePath().endsWith(".jpg")) {
f = new File(f.getAbsolutePath() + ".jpg");
}
LogManager lMan = LogManager.getLogManager();
lMan.fireLogEvent(LogManager.SAVEASJPG, f);
}
} /**
* File | SaveAsSVG action performed
* @param e ActionEvent
*/
public void jMenuFileSaveAsSVG_actionPerformed(ActionEvent e) { JFileChooser fileChooser =
new JFileChooser();
fileChooser.setDialogTitle("Save as SVG");
fileChooser.setFileHidingEnabled(false);
fileChooser.setFileSelectionMode
(JFileChooser.FILES_ONLY);
fileChooser.addChoosableFileFilter(new ImageFileFilter(".svg")); int choice = fileChooser.showSaveDialog(this);
if (choice == JFileChooser.APPROVE_OPTION) {
File f = fileChooser.getSelectedFile();
if (!f.getAbsolutePath().endsWith(".svg")) {
f = new File(f.getAbsolutePath() + ".svg");
}
LogManager lMan = LogManager.getLogManager();
lMan.fireLogEvent(LogManager.SAVEASSVG, f);
}
}
* View | Plugin | * action performed
* @param e ActionEvent
*/ public void jMenuViewPlugin_actionPerformed(ActionEvent e) { JCheckBoxMenuItem checkbox = (JCheckBoxMenuItem) e.getSource();
SettingsManager settingsManager = SettingsManager.getSettingsManager();
if (checkbox.getState() == true) {
settingsManager.setPluginActive(e.getActionCommand(), true);
try {
$pluginList.put(e.getActionCommand(),
instantiatePlugin(settingsManager.
getfullName(e.getActionCommand())));
}
catch (Exception ex) {
JOptionPane.showMessageDialog(null,
"An error occured!\nExtra information have been written to log...",
"Error...",
JOptionPane.ERROR_MESSAGE);
SettingsManager sm = SettingsManager.getSettingsManager();
ex.printStackTrace(sm.getLogStream());
}
}
else {
settingsManager.setPluginActive(e.getActionCommand(), false);
this.$contentManager.removePluginFromGui(settingsManager.getfullName(e.
getActionCommand()));
$pluginList.remove(e.getActionCommand());
}
settingsManager.writeToFile();
}
/**
* Help | About action performed
*
* @param e ActionEvent
*/
public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
JPanel panel = new JPanel(null);
panel.setBackground(Color.white);
panel.setBorder(BorderFactory.createLineBorder(Color.black));
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); Box box = new Box(BoxLayout.X_AXIS);
box.add(Box.createHorizontalGlue());
box.add(new JLabel(new ImageIcon("icons\\logo.png")));
box.add(Box.createHorizontalGlue());
panel.add(box); JOptionPane jop = new JOptionPane(panel);
JDialog dialog = jop.createDialog(this, "ModuleVisualisation v0.1");
dialog.setVisible(true); }
public void update(Observable o, Object arg) { LogMessage msg = (LogMessage) arg;
String status;
switch (msg.getLevel()) {
case LogManager.EXIT:
status = "Exit " + msg.getObject(); System.out.println(status);
$statusBar.setText(status);
System.exit(0);
break;
case LogManager.PLUGINLOADED:
status = "'" + msg.getObject() + "' loaded successfully."; System.out.println(status);
$statusBar.setText(status);
break;
case LogManager.SVGLOADING:
status = "'" + msg.getObject() + "' loading."; System.out.println(status);
$statusBar.setText(status);
break;
case LogManager.SVGLOADED:
status = "Canvas updated successfully.";
System.out.println(status);
$statusBar.setText(status);
break; case LogManager.SVGZOOMIN:
status = "'" + msg.getObject() + "' wants a zoom in."; System.out.println(status);
$statusBar.setText("Zoomed in.");
break;
case LogManager.SVGZOOMOUT:
status = "'" + msg.getObject() + "'wants a zoom out."; System.out.println(status);
$statusBar.setText("Zoomed out.");
break;
case LogManager.SVGZOOMRESET:
status = "'" + msg.getObject() + "'wants a zoom reset."; System.out.println(status);
$statusBar.setText("Zoom Reset.");
break;
case LogManager.SAVEASDONE:
status = "Current view saved as '" + msg.getObject() + "'."; System.out.println(status);
$statusBar.setText(status);
break;
case LogManager.SHOWGLASS:
$glassPane.start();
break;
case LogManager.HIDEGLASS:
$glassPane.stop();
break;
}
}
}谢谢大家啦!!!周末快乐!!!
[email protected]
我刚发现新浪的邮箱无法使用@_@。不知道是不是网站的问题。郁闷中
请把相关的程序发到我的另外一个邮箱里面。麻烦了。
[email protected]
非常感谢!!!开心!!!
给lchng2008分俄,怎么加俄?谁能告诉我啊,谢谢!