Salve,
Vorrei poter creare un tasto aggiorna che mi riesegue il mio programma però cambiando delle parti...
Non so mi servirebbe tipo un calendario per impostare il giorno e una checkbox per impostare un valore predefinito da fare scegliere all'utente...
Come fare ciò?
Mi potete dare una mano?
Questo è il mio codice:
Io dovrei poter cambiare dentro al frame questi 3 valori:codice:public class InternalFrame extends ApplicationFrame { public InternalFrame(String title) { super(title); JInternalFrame frame = new JInternalFrame("", true); frame.pack(); frame.setLocation(0, 0); frame.setVisible(true); getContentPane().add(frame); XYDataset dataset = createDataset("Nome linea",new Second()); JFreeChart chart = ChartFactory.createTimeSeriesChart("Trend Cella 30","Tempo","Temperatura",dataset,true,true,true); XYPlot lXYPlot = (XYPlot)chart.getPlot(); lXYPlot.setBackgroundPaint( Color.white ); // colore sfondo interno lXYPlot.setDomainGridlinePaint( Color.darkGray); // asse y interna grafico lXYPlot.setRangeGridlinePaint( Color.darkGray); // asse x interna grafico lXYPlot.setDomainCrosshairVisible( true ); lXYPlot.setRangeCrosshairVisible( true ); DateAxis lXYAxis = (DateAxis)lXYPlot.getDomainAxis(); lXYAxis.setDateFormatOverride( new SimpleDateFormat( "dd/MM/yyyy HH:mm" ) ); ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new Dimension(800, 600)); frame.getContentPane().add(chartPanel); } private XYDataset createDataset(String name, RegularTimePeriod start) { TimeSeries series = new TimeSeries("Temperatura ambiente", start.getClass()); TimeSeries series1 = new TimeSeries("Temperatura prodotto", start.getClass()); TimeSeries series2 = new TimeSeries("Set alta temperatura", start.getClass()); TimeSeries series3 = new TimeSeries("Set bassa temperatura", start.getClass()); TimeSeries series4 = new TimeSeries("Set temperatura media", start.getClass()); Connection con = null; try { String driver = "net.sourceforge.jtds.jdbc.Driver"; Class.forName(driver).newInstance(); } catch (Exception e) { System.out.println("Fallito il caricamento dei driver SQL."); return (null); } try { String n_cella="Cella30Trend"; String tempo_min="2006/07/13"; String tempo_max="2006/07/20"; // Query SQL String SQL= "SELECT * FROM " +n_cella+ " where tempo>='" +tempo_min+"' and tempo<='" +tempo_max+ "%'ORDER BY Tempo DESC"; // Connessione col database in cui vengono specificati url, nome utente, password con = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/MioDb", "**", "**"); Statement select = con.createStatement(); //caricamento query SQL ResultSet result = select.executeQuery(SQL); for(int i=0 , j=0 ; i<500 && i<=j ;i++){ result.next(); j++; String tempo = result.getString(2); double temp_a = result.getDouble(3); double temp_p = result.getDouble(4); double temp_s_a = result.getDouble(5); double temp_s_b = result.getDouble(6); double temp_s_m = result.getDouble(7); DateFormat dateformat=new SimpleDateFormat("yyyy/MM/dd HH.mm.ss"); java.util.Date data=dateformat.parse(tempo); series.addOrUpdate(new Second(data),temp_a); series1.addOrUpdate(new Second(data),temp_p); series2.addOrUpdate(new Second(data),temp_s_a); series3.addOrUpdate(new Second(data),temp_s_b); series4.addOrUpdate(new Second(data),temp_s_m); } } catch (Exception e) { e.printStackTrace(); } finally { if (con != null) { try { con.close(); } catch (Exception e) { e.printStackTrace(); } } } TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(series); dataset.addSeries(series1); dataset.addSeries(series2); dataset.addSeries(series3); dataset.addSeries(series4); return dataset; } public static void main( String[] args) { InternalFrame iframe = new InternalFrame("Trend Frigo"); iframe.pack(); RefineryUtilities.centerFrameOnScreen(iframe); iframe.setVisible(true); } }
String n_cella="Cella30Trend";
String tempo_min="2006/07/13";
String tempo_max="2006/07/20";
Il primo scelta fra varie celle numerate.
Il secondo e il terzo un calendario americano con anno/mese/giorno
COme si può fare??

Rispondi quotando