问题描述
packagetest;importjava.awt.BorderLayout;importjava.awt.Dimension;importjava.awt.Font;importjavax.swing.BorderFactory;importjavax.swing.JFrame;importjavax.swing.JLayeredPane;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.JTable;importjavax.swing.table.AbstractTableModel;importjavax.swing.table.TableModel;importorg.jfree.chart.ChartFactory;importorg.jfree.chart.ChartPanel;importorg.jfree.chart.JFreeChart;importorg.jfree.chart.plot.PlotOrientation;importorg.jfree.data.category.DefaultCategoryDataset;publicclassTest{staticclassDemoTableModelextendsAbstractTableModelimplementsTableModel{privateObject[][]data;publicDemoTableModel(introws,intcolumn){this.data=newObject[rows][column];}publicintgetColumnCount(){return16;}publicintgetRowCount(){returnthis.data.length;}publicObjectgetValueAt(introw,intcolumn){returnthis.data[row][column];}publicvoidsetValueAt(Objectvalue,introw,intcolumn){this.data[row][column]=value;fireTableDataChanged();}publicStringgetColumnName(intcolumn){returnnull;}}publicstaticJTablegetJTable(introw,intcolumn){DemoTableModelmodel=newDemoTableModel(row,column);JTablejtable=newJTable(model);returnjtable;}publicstaticvoidmain(Stringargs[]){String[]str=newString[16];for(inti=1;i<13;i++){str[i-1]="08"+(i<10?("0"+i):""+i);}str[12]="0901";str[13]="0902";str[14]="0903";str[15]="0904";//折点值float[]value=newfloat[16];for(inti=0;i<value.length;i++){value[i]=i+2;}DefaultCategoryDatasetdgd=newDefaultCategoryDataset();for(inti=0;i<value.length;i++){dgd.addValue(value[i],"2007年",str[i]);}JFreeChartjfc=ChartFactory.createLineChart("标题","一","二",dgd,PlotOrientation.VERTICAL,true,true,false);//按曲线图创建chartPanelChartPanelchartPanel=newChartPanel(jfc);JPanelcontent=newJPanel(newBorderLayout());content.add(chartPanel,BorderLayout.CENTER);//JLayeredPanejlp=newJLayeredPane();//jlp.add(chartPanel,newInteger(100));//创建tableJTablejtable=getJTable(3,value.length+1);JPaneltablePanel=newJPanel(newBorderLayout());tablePanel.setPreferredSize(newDimension(800,52));tablePanel.add(newJScrollPane(jtable));jtable.setValueAt("黄色标题",0,0);jtable.setValueAt("蓝色标题",1,0);jtable.setValueAt("红色标题",2,0);content.add(tablePanel,BorderLayout.SOUTH);//jlp.add(tablePanel,newInteger(50));//chartPanel.setBounds(100,100,100,100);//tablePanel.setBounds(50,50,100,100);JFramejf=newJFrame();jf.add(content);//jf.add(jlp);jf.pack();jf.setVisible(true);}}我注释掉的地方是想用JLayeredPane来将2个组件进行重叠布局,然后要求表格要紧挨着曲线图下面(可以覆盖掉年份),然后在Java代码里面将标题颜色改用Font对象实现字体颜色,哪个高手指点一下。