java 按钮控制动态曲线图进行 可是暂停按钮为什么没用

[复制链接]
查看11 | 回复0 | 2021-1-27 06:49:21 | 显示全部楼层 |阅读模式


第二张图是第一张图点了运行后曲线会自动生成,可是再点暂停按钮却没用importjava.awt.EventQueue;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JTextField;
importjavax.swing.JButton;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.FlowLayout;
publicclass说明{
JFrameframe;
privateJTextFieldtxtlogo;
privateJTextFieldtextField;
privateJTextFieldtextField_1;
privateJTextFieldtextField_2;
privateDySwingChartpanel1;

publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
说明window=new说明();
window.frame.setVisible(true);

}catch(Exceptione){
e.printStackTrace();
}
}
});
}

public说明(){
initialize();
//MyThreadmythread=newMyThread();
//mythread.start();
}

privatevoidinitialize(){
frame=newJFrame();
frame.setBounds(100,100,450,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
txtlogo=newJTextField();
txtlogo.setText("说明及LOGO");
txtlogo.setBounds(6,6,97,26);
frame.getContentPane().add(txtlogo);
txtlogo.setColumns(10);
JButtonbutton=newJButton("运行");
button.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
MyThreadmythread=newMyThread();
mythread.start();
StringBtn=button.getText();
if(Btn.equals("暂停"))
{
mythread.toSuspend();
button.setText("继续");
}else{
mythread.toResume();
button.setText("暂停");
}
}
});
button.setBounds(302,6,117,29);
frame.getContentPane().add(button);
textField_1=newJTextField();
textField_1.setText("操作说明");
textField_1.setBounds(301,84,130,159);
frame.getContentPane().add(textField_1);
textField_1.setColumns(10);
panel1=newDySwingChart();
panel1.chartPanel.setBounds(6,46,251,211);
frame.getContentPane().add(panel1.chartPanel);
JButtonbutton_1=newJButton("返回");
button_1.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
frame.setVisible(false);
UIwindow=newUI();
window.frame.setVisible(true);
frame.dispose();
}
});
button_1.setBounds(302,243,117,29);
frame.getContentPane().add(button_1);
JButtonbutton_3=newJButton("结束");
button_3.setBounds(302,57,117,29);
frame.getContentPane().add(button_3);
JLabellabel=newJLabel("速率:");
label.setBounds(115,11,39,16);
frame.getContentPane().add(label);
textField=newJTextField();
textField.setBounds(151,6,106,26);
frame.getContentPane().add(textField);
textField.setColumns(10);

}
classMyThreadextendsThread{
privatebooleansuspend=false;
publicsynchronizedvoidtoSuspend(){
suspend=true;
}
publicsynchronizedvoidtoResume(){
notify();//当前等待的线程继续执行
suspend=false;
}
publicvoidrun(){
inti=0;
while(true){
//synchronized(this){
//while(suspend){
//try{
//wait();//让线程进入等待状态
//}catch(InterruptedExceptione){
////TODOAuto-generatedcatchblock
//e.printStackTrace();
//}
//}
//}
doublefactor=-500+1000*Math.random();
DySwingChart.xyseries.add(i,factor);
try{
Thread.currentThread();
Thread.sleep(100);
}catch(InterruptedExceptione){
e.printStackTrace();
}
i++;
}
}
}
}
importjava.awt.EventQueue;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjava.awt.GridLayout;
importjava.awt.Window;
importjavax.swing.JTextArea;
importjavax.swing.JTextPane;
importjavax.swing.JButton;
importjava.awt.event.ActionListener;
importjava.awt.event.ActionEvent;
importjavax.swing.SwingConstants;
importjava.awt.Color;
importjavax.swing.JTextField;
publicclassUI{
JFrameframe;
privateJTextFieldtxtlogo;

publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
UIwindow=newUI();
window.frame.setVisible(true);
}catch(Exceptione){
e.printStackTrace();
}
}
});
}

publicUI(){
initialize();
}

privatevoidinitialize(){
frame=newJFrame();
frame.setBounds(100,100,450,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(newGridLayout(0,1,0,0));
JPanelpanel=newJPanel();
frame.getContentPane().add(panel);
panel.setLayout(null);
JTextAreatextArea=newJTextArea();
textArea.setBounds(126,11,0,16);
panel.add(textArea);
JButtonbtnNewButton_1=newJButton("平衡模式");
btnNewButton_1.setBounds(169,95,96,29);
btnNewButton_1.setBackground(Color.WHITE);
btnNewButton_1.setForeground(Color.DARK_GRAY);
btnNewButton_1.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
}
});
panel.add(btnNewButton_1);
JButtonbtnNewButton=newJButton("监测模式");
btnNewButton.setBounds(169,136,96,29);
btnNewButton.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
frame.setVisible(false);
说明window1=new说明();
window1.frame.setVisible(true);
frame.dispose();
}
});
panel.add(btnNewButton);
JButtonbutton=newJButton("说明及版本号");
button.setBounds(161,243,117,29);
panel.add(button);
JLabellbllogo=newJLabel("产品名称及LOGO");
lbllogo.setBounds(161,26,109,48);
panel.add(lbllogo);
}
}
importorg.jfree.chart.ChartFactory;
importorg.jfree.chart.ChartPanel;
importorg.jfree.chart.JFreeChart;
importorg.jfree.chart.axis.NumberAxis;
importorg.jfree.chart.plot.PlotOrientation;
importorg.jfree.chart.plot.XYPlot;
importorg.jfree.data.xy.XYDataset;
importorg.jfree.data.xy.XYSeries;
importorg.jfree.data.xy.XYSeriesCollection;
importorg.jfree.ui.RefineryUtilities;
publicclassDySwingChartextendsJComponent{
privatestaticfinallongserialVersionUID=4540402465397663673L;
publicJPanelchartPanel;
publicDySwingChart(){
super();
//setContentPane();
chartPanel=createDemoPanel();
}
publicstaticXYSeriesxyseries;
publicXYSeriesCollectioncreateDataset1(){
xyseries=newXYSeries("折线图");
XYSeriesCollectionxyseriescollection=newXYSeriesCollection();
xyseriescollection.addSeries(xyseries);
returnxyseriescollection;
}
publicJFreeChartcreateChart(){
XYDatasetxydataset=createDataset1();
JFreeChartjfreechart=ChartFactory.createXYLineChart(
"变化","时间","值",xydataset,
PlotOrientation.VERTICAL,false,true,false);
XYPlotxyplot=(XYPlot)jfreechart.getPlot();
NumberAxisnumberaxis=(NumberAxis)xyplot.getRangeAxis();
numberaxis.setAutoRangeIncludesZero(true);
NumberAxisx=(NumberAxis)xyplot.getDomainAxis();
x.setLabel("时间");
x.setAutoRange(true);
returnjfreechart;
}
publicvoiddynamicRun(){
inti=0;
while(true){
doublefactor=-500+1000*Math.random();
xyseries.add(i,factor);
try{
Thread.currentThread();
Thread.sleep(1000);
}catch(InterruptedExceptione){
e.printStackTrace();
}
i++;
}
}
publicJPanelcreateDemoPanel(){
JFreeChartjfreechart=createChart();
returnnewChartPanel(jfreechart);
}
//publicstaticvoidmain(Stringargs[]){
//JFrame.setDefaultLookAndFeelDecorated(true);
//DySwingChartannotationdemo2=newDySwingChart(
//"动态折线图");
//annotationdemo2.pack();
//annotationdemo2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//RefineryUtilities.centerFrameOnScreen(annotationdemo2);
//annotationdemo2.setVisible(true);
//annotationdemo2.dynamicRun();
//}

分 -->
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行