Versuche, die Datei alle x Sekunden auszuführen
Bitte finden Sie den aktualisierten Code, der alle 10 Sekunden wiederholt wird. Das Problem ist jedoch, dass alle 10 Sekunden eine neue GUI auf dem Bildschirm erstellt wird, anstatt die Daten NUR alle 10 Sekunden zu aktualisieren. Bitte können Sie @ berat
package learningfromscrach;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import javax.swing.JTextArea;
import com.sun.java.swing.*;
import javax.swing.table.*;
import java.awt.FlowLayout;
import java.text.DecimalFormat;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import org.apache.log4j.BasicConfigurator;
import static org.quartz.DateBuilder.evenMinuteDate;
import org.quartz.Job;
import static org.quartz.JobBuilder.newJob;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import static org.quartz.TriggerBuilder.newTrigger;
import org.quartz.impl.StdSchedulerFactory;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import java.awt.Toolkit;
public class Learningfromscrach extends JFrame implements Job {
Toolkit toolkit;
Timer timer;
//declare all the parts that make up the GUI
private JLabel textJLabel;
private JPanel PanelJlabel;//JLabel is actually a parameter in JAVA
private TitledBorder PanelJborder;
DefaultTableModel model;
JTable table;
public Learningfromscrach(int seconds)
//tell java to initiate the create interface
//this is what is passed to the timer every 10 seconds
{
createUserInterface();//create method private void createUserInterface//aframe is parameter this has to match the private void
}
class Learningtask extends TimerTask {
public void run() {
System.out.format("Timer Task Finished..!%n");
//System.exit(0); // Terminate the timer thread
}
}
private void createUserInterface()
//all the parts to create the userinterface
{//from here
Container contentPane = getContentPane();
contentPane.setLayout( null);// i am responsible for setting positioning and size of components
setTitle("Cashout Prices");//setTitle is also a JAVA Parameter
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setSize((int) (screenSize.width/6), (int) (screenSize.height/1.1));//cast int for width
setVisible(true); //makes the java application show
System.out.format("Timer task started at:"+new Date());
String url = "http://bmreports.com/bsp/additional/soapfunctions.php?element=SYSPRICE&dT=NRT";
Document doc = null;
try {
doc = Jsoup.connect(url).get();
} catch (IOException ex) {
Logger.getLogger(Learningfromscrach.class.getName()).log(Level.SEVERE, null, ex);
}
Elements Periodparagraphs;
Elements SSPparagraphs;
Elements SBPparagraphs;
Periodparagraphs = doc.select("SP");//counts the number of SSP Paragraphs in the entire document
SSPparagraphs = doc.select("SSP");//counts the number of SSP Paragraphs in the entire document
SBPparagraphs = doc.select("SBP");//counts the number of SBP Paragraphs in the entire document
//DecimalFormat df = new DecimalFormat("#.###");
//df.format(0.912385);
String[] numbers1;
numbers1 = Periodparagraphs.text().split(" ");
String[] numbers;
numbers = SSPparagraphs.text().split(" ");
String[] numbers0;
numbers0 = SBPparagraphs.text().split(" ");
//String str = "1234";
//int num = Integer.parseInt(str);
int tableRows;
if (numbers0.length > numbers.length && numbers0.length > numbers1.length)
{
tableRows = numbers0.length;
}
else if (numbers.length > numbers0.length && numbers.length > numbers1.length)
{
tableRows = numbers.length;
}
else
{
tableRows = numbers1.length;
}
//model = new DefaultTableModel(col, 90);//50 is number of rows --You don't seem to need this
Object[][] data = new String[tableRows][3];//3 is number of columns
for (int x = 0; x < tableRows; x++ )
{
try
{
data[x][0] = numbers1[x];
}
catch (IndexOutOfBoundsException e)
{
data[x][0] = " ";//error
}
try
{
data[x][1] = numbers[x];
}
catch (IndexOutOfBoundsException e)
{
data[x][1] = " ";
}
try
{
data[x][2] = numbers0[x];
}
catch (IndexOutOfBoundsException e)
{
data[x][2] = " ";
}
}
//header.setBackground(Color.yellow);
// model = new DefaultTableModel(col,90);//50 is number of rows
String col[] = {"SBP","SSP","Period"};
table=new JTable(data,col){@Override
public boolean isCellEditable(int arg0, int arg1) {
return false;
}};
JTableHeader header = table.getTableHeader();
header.setBackground(Color.yellow);
contentPane.add(table);
//table.setValueAt(SBPparagraphs.text(),0,0); //first number is moves placing down by 2 rows//2nd number is next cclumn and so on
//table.setValueAt("fgfg",0,0);
table.setSize(screenSize.width/2, (int) (screenSize.height/1.1));
table.setBounds(16,50,400,2000);
table.setLayout(null);
table.setVisible(true);
//add(table.getTableHeader(), BorderLayout.NORTH);
// table.setLayout(new BorderLayout());
//add(table, BorderLayout.CENTER);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
//to hear this all refers to the contentpane
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws SchedulerException, InterruptedException {
// TODO code application logic here
// BasicConfigurator.configure();
new Learningfromscrach(1);
System.out.format("Task scheduled.. Now wait for 5 sec to see next message..%n");
}
//next step to understand how to get data into the panel
@Override
public void execute(JobExecutionContext jec) throws JobExecutionException {
_log.info("Hello World! - " + new Date());
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}