M
m0ps1234
Gast
Hi zusammen,
ich bin noch relativer Neuling in der Javaprogrammierung.
Deswegen bin ich fleißig am rumprobieren und habe jetzt mit Netbeans ein Autoshutdownprogramm programmiert.
Funktioniert auch ohne Probleme.
Nur möchte ich jetzt in dem Programm noch eine Fortschrittsanzeige einbauen, d.h. wenn das Programm gestartet wird, dann wird zb ein jLabel-Text geändert, der ununterbrochen die verbleibende Zeit bis zum shutdown anzeigt. Noch schöner würde ich eine Progressbar finden, die den Verlauf darstellt.
Meine Klassen sind wie folgt aufgebaut:
Klasse A:
Jetzt wollte ich irgendwie einen Timer starten, der jede Sekunde einen Wert zurückgibt, der die verbleibende Zeit in Millisekunden zeigt.
Dieser soll entweder in jLabel3 ausgegeben werden oder in der jProgressBar "durchlaufen".
Ich hab schonmal mit While-Schleifen rumgespielt (was auch geklappt hat - die Werte wurden per System.out.println richtig ausgegeben.) nur bekomm ich es nicht hin diese Werte zb per jLabel3.setText('Wert als String') auszugeben.
Geschweige denn sie irgendwie in die Progressbar zu bekommen.
Wie macht man soetwas?
Grüße
ich bin noch relativer Neuling in der Javaprogrammierung.
Deswegen bin ich fleißig am rumprobieren und habe jetzt mit Netbeans ein Autoshutdownprogramm programmiert.
Funktioniert auch ohne Probleme.
Nur möchte ich jetzt in dem Programm noch eine Fortschrittsanzeige einbauen, d.h. wenn das Programm gestartet wird, dann wird zb ein jLabel-Text geändert, der ununterbrochen die verbleibende Zeit bis zum shutdown anzeigt. Noch schöner würde ich eine Progressbar finden, die den Verlauf darstellt.
Meine Klassen sind wie folgt aufgebaut:
Klasse A:
Code:
public class Programm extends javax.swing.JFrame {
Image icon = Toolkit.getDefaultToolkit().getImage("sleep.png");
public myThreads thread1;
public Programm() {
initComponents(); //Hier wird die GUI erzeugt (hab den Teil jetzt mal weggelassen.
}
@SuppressWarnings("unchecked")
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
thread1 = new myThreads(Integer.parseInt((String) Stundenbox.getSelectedItem()), Integer.parseInt((String) Minutenbox.getSelectedItem()));
thread1.start();
jLabel2.setText("Status: gestartet");
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
thread1.stop();
jLabel2.setText("Status: gestoppt");
}
@SuppressWarnings("empty-statement")
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Programm().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel Minuten;
private javax.swing.JComboBox Minutenbox;
private javax.swing.JLabel Stunden;
private javax.swing.JComboBox Stundenbox;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JProgressBar jProgressBar1;
// End of variables declaration
private void setIconImage(String string) {
throw new UnsupportedOperationException("Not yet implemented");
}
}
Klasse B:
public class myThreads extends Thread {
private int t;
public myThreads(int x, int y){
t = x * 3600000 + y * 60000;
}
public void run(){
try {
sleep(t);
} catch (InterruptedException ex) {
Logger.getLogger(myThreads.class.getName()).log(Level.SEVERE, null, ex);
}
Runtime rt=Runtime.getRuntime();
try {
rt.exec("shutdown -s -t 00 -f");
} catch (IOException ex) {
Logger.getLogger(myThreads.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Dieser soll entweder in jLabel3 ausgegeben werden oder in der jProgressBar "durchlaufen".
Ich hab schonmal mit While-Schleifen rumgespielt (was auch geklappt hat - die Werte wurden per System.out.println richtig ausgegeben.) nur bekomm ich es nicht hin diese Werte zb per jLabel3.setText('Wert als String') auszugeben.
Geschweige denn sie irgendwie in die Progressbar zu bekommen.
Wie macht man soetwas?
Grüße