SELIOR PROGRAMME DE COMMANDE D'ORDINATEUR(ETEINDRE REDEMARRER DECONNECTER)
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020
-
17 mai 2011 à 14:40
KX
Messages postés16734Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention24 avril 2024
-
7 oct. 2013 à 20:21
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
KX
Messages postés16734Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention24 avril 2024127 7 oct. 2013 à 20:21
Puisque cette source remonte à la surface j'en profites pour mettre mon évaluation : 2/5
Certes c'est intéressant (un point) et ça fonctionne (deuxième point) mais vu que c'est très mal codé je vois difficilement comment mettre plus !
Entre les lignes de codes totalement inutiles (à commencer par les import), la redondance de code ou des horreurs comme la déclaration d'un objet JFrame dans le constructeur de la fenêtre au lieu d'utiliser la super classe !
Bref, je déconseilles fortement de prendre exemple sur le code source en l'état.
En voici une version corrigée pour ceux qui voudraient s'en inspirer :
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.InputStream;
import java.io.PrintStream;
import java.util.Scanner;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.UIManager;
public class Selior extends JFrame
{
private static final long serialVersionUID = 1;
private static final String TXT_TITLE = "Selior v2.0 - originally by DahouDo";
private static final String TXT_SHUTDOWN = "Eteindre l'ordinateur";
private static final String TXT_RESTART = "Redémarrer l'ordinateur";
private static final String TXT_LOGOUT = "Fermer la session";
private static final String CMD_SHUTDOWN = "shutdown -s";
private static final String CMD_RESTART = "shutdown -r";
private static final String CMD_LOGOUT = "shutdown -l";
private static final Toolkit TOOLKIT = Toolkit.getDefaultToolkit();
private static final Image IMG_ICON = TOOLKIT.getImage("france.png");
private static final Image IMG_BACK = TOOLKIT.getImage("lb.png");
private static final Runtime RUNTIME = Runtime.getRuntime();
public static void main(String[] args)
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e)
{
}
new Selior().setVisible(true);
}
public Selior()
{
setTitle(TXT_TITLE);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 400);
setIconImage(IMG_ICON);
setLayout(new GridLayout(4, 1));
setLocationRelativeTo(null);
add(new JLabel(new ImageIcon(IMG_BACK)));
JButton shutdown = new JButton(TXT_SHUTDOWN);
shutdown.addActionListener(action(CMD_SHUTDOWN));
add(shutdown);
JButton restart = new JButton(TXT_RESTART);
restart.addActionListener(action(CMD_RESTART));
add(restart);
JButton logout = new JButton(TXT_LOGOUT);
logout.addActionListener(action(CMD_LOGOUT));
add(logout);
}
private static ActionListener action(final String cmd)
{
return new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
exec(cmd);
}
};
}
private static void exec(String cmd)
{
Process process = null;
try
{
process = RUNTIME.exec(cmd);
Thread out = flush(process.getInputStream(), System.out);
Thread err = flush(process.getErrorStream(), System.err);
out.join();
err.join();
process.destroy();
}
catch (Exception e)
{
e.printStackTrace();
}
System.exit(process == null ? -1 : process.exitValue());
}
private static Thread flush(final InputStream in, final PrintStream out)
{
Thread thread = new Thread()
{
@Override
public void run()
{
Scanner sc = new Scanner(in);
while (sc.hasNextLine())
out.println(sc.nextLine());
sc.close();
}
};
thread.start();
return thread;
}
}
KX
Messages postés16734Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention24 avril 2024127 7 oct. 2013 à 08:00
En supposant que tu ais correctement installé Java, et que tu ais placé le fichier PROG.java et les deux images dans un dossier "C:\Workspace\CCM" par exemple.
Alors il te suffit d'ouvrir une ligne de commande et d'entre ces trois commandes :
cd C:\WorkspaceCCM
javac PROG.java
java PROG
franck1000
Messages postés5Date d'inscriptionsamedi 28 septembre 2013StatutMembreDernière intervention15 novembre 2013 7 oct. 2013 à 01:42
slt tout le monde (cs_julien39) je n'arrive pas à executer ton programme .Need help je suis debutant en java .merci à l'avance
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 23 mai 2011 à 16:36
Je viens de relire mon commentaire et de regarder à nouveau ton programme, et tu as raison, un seul fichier ca passe bien pour des petits programme.
a+
amateur_java
Messages postés32Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention 6 août 2020 23 mai 2011 à 15:26
pour le seul fichier nrmalement c'est plus facile à lire et à assimiler sinon jai pas trop travailler la dessus c'etait juste un loisir ;-)
thanks pour le compliment!
n'hesite pas si tas besoin d'aide.
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 17 mai 2011 à 14:40
Dommage que tu ais utilisé une seul fichier, le code est assez pénible à lire, sinon, ca peut être utile, on voit assez peu de sources du genre sur ce site.
7 oct. 2013 à 20:21
Certes c'est intéressant (un point) et ça fonctionne (deuxième point) mais vu que c'est très mal codé je vois difficilement comment mettre plus !
Entre les lignes de codes totalement inutiles (à commencer par les import), la redondance de code ou des horreurs comme la déclaration d'un objet JFrame dans le constructeur de la fenêtre au lieu d'utiliser la super classe !
Bref, je déconseilles fortement de prendre exemple sur le code source en l'état.
En voici une version corrigée pour ceux qui voudraient s'en inspirer :
7 oct. 2013 à 08:00
Alors il te suffit d'ouvrir une ligne de commande et d'entre ces trois commandes :
7 oct. 2013 à 01:42
23 mai 2011 à 16:36
a+
23 mai 2011 à 15:26
thanks pour le compliment!
n'hesite pas si tas besoin d'aide.
17 mai 2011 à 14:40