求JAVA GUI高手帮忙,谢谢!! 我是个JAVA初学者,请教各位用GUI建立直角坐标系的实时数据采集,画出曲线图怎么做?最好能有原代码,.cn谢谢大家 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.awt.BasicStroke;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.BorderFactory;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.Timer;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.chart.axis.DateAxis;import org.jfree.chart.axis.NumberAxis;import org.jfree.chart.plot.XYPlot;import org.jfree.chart.renderer.xy.XYItemRenderer;import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;import org.jfree.data.time.Millisecond;import org.jfree.data.time.TimeSeries;import org.jfree.data.time.TimeSeriesCollection;import org.jfree.ui.RectangleInsets;public class MemoryUsageDemo extends JPanel{ private TimeSeries total; private TimeSeries free; public MemoryUsageDemo(int historyCount) { super(new BorderLayout()); this.total = new TimeSeries("Total Memory", Millisecond.class); this.free = new TimeSeries("Free Memory", Millisecond.class); this.total.setMaximumItemAge(30000); this.free.setMaximumItemAge(30000); TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(total); dataset.addSeries(free); DateAxis domain = new DateAxis("Time"); NumberAxis range = new NumberAxis("Memory"); domain.setTickLabelFont(new Font("SansSerif", Font.PLAIN, 12)); range.setTickLabelFont(new Font("SansSerif", Font.PLAIN, 12)); domain.setLabelFont(new Font("SensSerif", Font.PLAIN, 14)); range.setLabelFont(new Font("SansSerif", Font.PLAIN, 14)); XYItemRenderer renderer = new XYLineAndShapeRenderer(true, false); renderer.setSeriesPaint(0, Color.red); renderer.setSeriesPaint(1, Color.green); renderer.setStroke(new BasicStroke(3f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); XYPlot plot = new XYPlot(dataset, domain, range, renderer); plot.setBackgroundPaint(Color.lightGray); plot.setDomainGridlinePaint(Color.white); plot.setRangeGridlinePaint(Color.white); plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0)); domain.setAutoRange(true); domain.setLowerMargin(0.0); domain.setUpperMargin(0.0); domain.setTickLabelsVisible(true); range.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); JFreeChart chart = new JFreeChart("JVM Memory Usage", new Font( "SansSerif", Font.BOLD, 24), plot, true); chart.setBackgroundPaint(Color.white); ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory .createEmptyBorder(4, 4, 4, 4), BorderFactory .createLineBorder(Color.black))); add(chartPanel); } private void addTotalObservation(double y) { this.total.add(new Millisecond(),y); } private void addFreeObservation(double y) { this.free.add(new Millisecond(),y); } class DataGenerator extends Timer implements ActionListener { DataGenerator(int interval) { super(interval,null); addActionListener(this); } public void actionPerformed(ActionEvent event) { long f=Runtime.getRuntime().freeMemory(); long t=Runtime.getRuntime().totalMemory(); addTotalObservation(t); addFreeObservation(f); } } public static void main(String[] args) { JFrame frame=new JFrame("Memory Usage Demo"); MemoryUsageDemo panel=new MemoryUsageDemo(30000); frame.getContentPane().add(panel,BorderLayout.CENTER); frame.setBounds(200,120,600,280); frame.setVisible(true); panel.new DataGenerator(100).start(); frame.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { System.exit(0); } }); }}类中的org.jfree包中的类需要到down 一个jfree的jiar包添加到classpath中,然后运行。 地址在这里http://www.jfree.org/jfreechart/上面的类是实时监视CPU的使用情况 java数据库提取答案方法 ---Java 加密与解密问题 [求助] 关于try..catch的流程问题 我是计算机专业的,我志愿终身当一名java软件开发人员,我现在已经把J2SE的基础都看完了,也基本都理解了,请问接下来我该如何强化自己,请高人指路!谢谢! 多线程中同步的问题 求助大虾!!!! java不是已经开源了吗? 急!关于Swing,如何实现模态对话框!!! 乱码!!!!!在线等待 简单的问题! java连接数据库 bug管理-好东西和大家共享
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.ui.RectangleInsets;public class MemoryUsageDemo extends JPanel
{
private TimeSeries total; private TimeSeries free; public MemoryUsageDemo(int historyCount)
{
super(new BorderLayout());
this.total = new TimeSeries("Total Memory", Millisecond.class);
this.free = new TimeSeries("Free Memory", Millisecond.class);
this.total.setMaximumItemAge(30000);
this.free.setMaximumItemAge(30000);
TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(total);
dataset.addSeries(free);
DateAxis domain = new DateAxis("Time");
NumberAxis range = new NumberAxis("Memory");
domain.setTickLabelFont(new Font("SansSerif", Font.PLAIN, 12));
range.setTickLabelFont(new Font("SansSerif", Font.PLAIN, 12));
domain.setLabelFont(new Font("SensSerif", Font.PLAIN, 14));
range.setLabelFont(new Font("SansSerif", Font.PLAIN, 14));
XYItemRenderer renderer = new XYLineAndShapeRenderer(true, false);
renderer.setSeriesPaint(0, Color.red);
renderer.setSeriesPaint(1, Color.green);
renderer.setStroke(new BasicStroke(3f, BasicStroke.CAP_BUTT,
BasicStroke.JOIN_BEVEL));
XYPlot plot = new XYPlot(dataset, domain, range, renderer);
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinePaint(Color.white);
plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
domain.setAutoRange(true);
domain.setLowerMargin(0.0);
domain.setUpperMargin(0.0);
domain.setTickLabelsVisible(true);
range.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
JFreeChart chart = new JFreeChart("JVM Memory Usage", new Font(
"SansSerif", Font.BOLD, 24), plot, true);
chart.setBackgroundPaint(Color.white);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory
.createEmptyBorder(4, 4, 4, 4), BorderFactory
.createLineBorder(Color.black)));
add(chartPanel);
}
private void addTotalObservation(double y)
{
this.total.add(new Millisecond(),y);
}
private void addFreeObservation(double y)
{
this.free.add(new Millisecond(),y);
}
class DataGenerator extends Timer implements ActionListener
{
DataGenerator(int interval)
{
super(interval,null);
addActionListener(this);
}
public void actionPerformed(ActionEvent event)
{
long f=Runtime.getRuntime().freeMemory();
long t=Runtime.getRuntime().totalMemory();
addTotalObservation(t);
addFreeObservation(f);
}
}
public static void main(String[] args)
{
JFrame frame=new JFrame("Memory Usage Demo");
MemoryUsageDemo panel=new MemoryUsageDemo(30000);
frame.getContentPane().add(panel,BorderLayout.CENTER);
frame.setBounds(200,120,600,280);
frame.setVisible(true);
panel.new DataGenerator(100).start();
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}类中的org.jfree包中的类需要到down 一个jfree的jiar包添加到classpath中,然后运行。
上面的类是实时监视CPU的使用情况