Menu schließen

Java Projekt Laptop Monitor ausschalten und co

Frage: Java Projekt Laptop Monitor ausschalten und co
(7 Antworten)


Autor
Beiträge 28
3
Hi Leute,


ich schreibe gerade eine java programm mit GUI.
auf dieser sind button, hinter denen codes zum
- herunterfahren von window
- stand by versetzten
- hibernate versetzten
- monitor abschalten
`stehen` sollen.

PS: ich hätte gerne ein programm (.jar-endung), welches auf WinXP und 7 laufen sollte
ich habe die GUI schon, mir fehlen nur noch die `commandos für windows`

Hier mein Code:

package GUI2;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class Window extends JFrame implements ActionListener{
JButton sd, s, sb, mo; JTextArea ta;
public Window(){
super ("Aktion");
setLocation(10,10);
setSize(500,400);
setLayout(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Insets inset = getInsets();
int b = getWidth();
int h1 = 30;
sd = new JButton ("PC: Shut Down PC");
s = new JButton ("System: Hibernate");
sb = new JButton ("System: Stand By");
mo = new JButton ("PC: Turn Off Monitor");
sd.addActionListener(this);
s.addActionListener(this);
sb.addActionListener(this);
mo.addActionListener(this);
sd.setBounds(inset.left+10, inset.top+20+(4*h1), (b/2), h1);
s.setBounds(inset.left+10, inset.top+30+(6*h1), (b/2), h1);
sb.setBounds(inset.left+10, inset.top+40+(7*h1), (b/2), h1);
mo.setBounds(inset.left+10, inset.top+50+(9*h1), (b/2), h1);
add(sd); add(s); add(sb); add(mo);
setResizable(false); setVisible(true);}
@Override
public void actionPerformed(ActionEvent a){
if (a.getSource() == sd){}
if (a.getSource() == s){}
if (a.getSource() == sb){}
if (a.getSource() == mo){}
}
Frage von Pathou | am 07.05.2015 - 21:57


Autor
Beiträge 74
6
Antwort von Colirbi | 08.05.2015 - 10:17
du kannst mit java runtime Systembefehle ausführen, sprich Befehle, die du auch auf der Konsole ausführen kannst.

unlockforus.blogspot.co.at  hier hast du eine Übersicht über die entsprechenden Befehle.
Und hier ein Beispiel, wie so ein Aufruf über Java aussieht:

public static void main ( String arg []) throws IOException {
  
   Runtime . getRuntime (). exec (  "shutdown.exe -s -t 0" );
   System . exit ( 0 );
 }

Anmerkung noch zum Code, wenn du schon nur einen ActionHandler nutzt, dann frag doch bitte nicht mit 5x if ab, so muss dein Programm jede Abfrage einzeln bearbeiten, auch wenns schon in der ersten ein Treffer war.
Besser :
if ()
else if()
else if () ...
else


Autor
Beiträge 28
3
Antwort von Pathou | 21.05.2015 - 23:21
Neues Projekt

Ich möchte das der Text den ich ins textfeld(jjj) eingebe in einer txt(bzw. DalSp(eigenes Format))-datei gespeichert(speichern) wird und auch aus einer solchen in das feld eingegeben werden kann(öffnen).

bisheriger CODE (Quell1 = javabeginners.de):
package GUI3;

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.*;

import javax.swing.filechooser.*;

@SuppressWarnings("serial")

public class Menu extends JFrame implements ActionListener
{
    JMenuBar menuBar;
    JMenu menu, submenu;
    JMenuItem menuIteme, menuItemf;
    JTextField jjj;
   
    public Menu()
    {
        super ("");
        setLocation(10,10);
        setSize(500,400);
        setLayout(null);
       
        setDefaultCloseOperation(EXIT_ON_CLOSE);
       
        menuBar = new JMenuBar();
        menu = new JMenu("Datei");
        menu.getAccessibleContext().setAccessibleDescription("Fensterauswahl");
        menuBar.add(menu);
        submenu = new JMenu("Speichern");
        menuIteme = new JMenuItem("Speichern als");
        menuIteme.addActionListener(this);
        submenu.add(menuIteme);
        menu.add(submenu);
        menuItemf = new JMenuItem("Öffnen");
        menuItemf.addActionListener(this);
        menu.add(menuItemf);

        setJMenuBar(menuBar);
       
        Insets inset = getInsets();
        jjj = new JTextField();
        jjj.setBounds(inset.left+10, inset.top+10, 300, 20);
        add(jjj);
       
        setResizable(false);
        setVisible(true);
    }
    @Override
    public void actionPerformed(ActionEvent ie){
          if (ie.getSource() == menuIteme)  {
               SaveAs(null);
          }else{
                if (ie.getSource() == menuItemf) {
                      Open();
          }}
    }
    public boolean SaveAs(String pfad){
        JFileChooser chooser;
         if (pfad == null){
            pfad = System.getProperty("user.home");
        }
          File file = new File(pfad.trim());
        chooser = new JFileChooser(pfad);
        chooser.setDialogType(JFileChooser.SAVE_DIALOG);
        FileNameExtensionFilter plainFilter = new FileNameExtensionFilter(
                "Plaintext:", "txt");
        FileNameExtensionFilter markUpFilter = new FileNameExtensionFilter(
                "DaltonSportdatei:", "DalSp");
        chooser.removeChoosableFileFilter(chooser.getAcceptAllFileFilter());
        chooser.setFileFilter(plainFilter);
        chooser.setFileFilter(markUpFilter);
        chooser.setDialogTitle("Speichern als");
        chooser.setVisible(true);
 int result = chooser.showSaveDialog(this);
  if (result == JFileChooser.APPROVE_OPTION)  {
            pfad = chooser.getSelectedFile().toString();
            file = new File(pfad);
            chooser.setVisible(false);
            return true;
        }
        chooser.setVisible(false);
        return false;
    }
    public void Open() {
        JFileChooser chooser = new JFileChooser("Verzeichnis wählen");
        chooser.setDialogType(JFileChooser.OPEN_DIALOG);
        chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
        File file = new File("/home");
        chooser.setCurrentDirectory(file);
        chooser.addPropertyChangeListener
        (new PropertyChangeListener() {
            public void propertyChange(PropertyChangeEvent e){
                if (e.getPropertyName().equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)
|| e.getPropertyName().equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY)){
                    File f = (File) e.getNewValue();
         }}
        }
        );

        chooser.setVisible(true);
        int result = chooser.showOpenDialog(null);
        if (result == JFileChooser.APPROVE_OPTION){}
        chooser.setVisible(false);
    }
    public boolean checkFile(File file){
        if (file != null){
            try{
                file.createNewFile();
            }catch (IOException e){}
            if (file.isFile() && file.canWrite() && file.canRead()){
                return true;
            }
        }
        return false;
    }
     public static void main (String [] args){new Menu();}
}


Autor
Beiträge 74
6
Antwort von Colirbi | 22.05.2015 - 02:11
Ok als gestandener Informatiker geb ich dir mal nen heißen Tipp ;) einfach mal googlen. Grade für so triviale Probleme findest du zu 98% Lösungen im Internet mit guten Erklärungen. Das hilft auch meist besser dabei zu verstehen was man grade macht, als wenn ich dir das hier löse ;).


Aber ich möchte dir natürlich trotzdem helfen, daher hier ein Vorschlag für dein Problem:

Du hast bereits den FileChooser richtig angewandt und deine ActionHandler sehen soweit auch gut aus. Ein Textfeld hast du ja auch schon.
Nun kannst du einfach wenn du save as auslöst den Text aus deinem Textfield auslesen und in deine Datei schreiben. Dazu hier ein Beispiel:
blog.mynotiz.de
Umgekehrt gehst du natürlich vor, wenn du deine Datei wieder öffnen willst. File auswählen (über den chooser) und einfach Zeile für Zeile auslesen und in dein Textfeld schreiben.
www.javaschubla.de

Die Endung mit der du die Datei speicherst ist dabei übrigens egal.

Falls noch Fragen sind, immer her damit


Autor
Beiträge 28
3
Antwort von Pathou | 22.05.2015 - 14:52
wenn ich ein JTextField nehme kann ich nur eine zeile eintragen lassen oder?
sollte ich in dem fall nicht ein JTextArea verwenden?

PS.: wie kann ich doppelendungen auslesen lassen,
weil ich mehrere unterschiedliche fenster programmiere (unterschiedlicher inhalt und anzahl der felder)?


Autor
Beiträge 74
6
Antwort von Colirbi | 22.05.2015 - 15:13
Jo in dem Fall solltest du dann eine Textarea verwenden. Dein PS versteh ich nicht ^^. Was meinst du mit doppelendungen?


Autor
Beiträge 28
3
Antwort von Pathou | 22.05.2015 - 18:44
Endungen:
- .sch.txt
- .s-txt
- .k.txt
- .sl.txt


Autor
Beiträge 74
6
Antwort von Colirbi | 23.05.2015 - 02:20
Ich antworte einfach mal wieder mit nem Link ;)
java-tutorial.org

Wenn du im FileChooserDialog bei Dateitypen "alle Dateien" auswählst solltest du die auch problemlos öffnen und auslesen können. Das Verfahren ist gleich, egal ob .txt Datei oder weiß was ich .akjsdkaölskdjl ;)

Verstoß melden
Hast Du eine eigene Frage an unsere Computer & Technik-Experten?

503 ähnliche Fragen im Forum: 0 passende Dokumente zum Thema:
> Du befindest dich hier: Support-Forum - Computer & Technik
ÄHNLICHE FRAGEN:
  • Ereignisanzeige ausschalten
    Hey Leute, ich habe ein echt doofes Problem:( immer wenn ich den Laptop anschalte ohne es meinem Vater zu sagen. Weiß er ..
  • Java
    gibts n großen unterschied zwischen java online und java offline? Also muss man bei java online an irgwelchen umfragen ..
  • Kabel zwischen Laptop und Monitor
    Hallo an alle, ich brauche dringend Hilfe, da mir nicht mehr viel Zeit für die Prüfung bleibt (Diplom). Durch das bis zu 10 std..
  • Lineare Datenstrukturen in Java
    Hallo, ich würde gerne wissen, ob mir jemand helfen kann welcher sich gut mit Java auskennt. Es wäre cool, wenn mich jemand ..
  • grafikarte
    hab meinen pc mit neuen grafikarte eingebaut als ich den pc eingeschaltet hab ging es wunderbar aber als ich die treiber ..
  • wie ensteht die farbe auf dem monitor vom laptop
    Hallo an alle da draußen ich habe mal eine frage undzwar habe ich in physik das thema farbe und farbaddition und nun soll ich ..
  • mehr ...