Zum Inhalt springen

Marv04

Mitglieder
  • Gesamte Inhalte

    4
  • Benutzer seit

  • Letzter Besuch

  1. Tachen Zusammen, habe ein kleines Problem, ich habe mir ein kleines programm geschrieben aber leider hängt es sich bei einer funktion immer auf und es reagiert nicht mehr. public void ruhemodus(int timeout) throws Exception { ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); ScheduledFuture<Exception> f = executor.schedule(new Callable<Exception>() { @Override public Exception call() { try { System.out.println("erg: "+timeout); shutDown.exec("rundll32 powrprof.dll,SetSuspendState"); System.exit(timeout); return null; } catch (IOException e) { return e; } } }, timeout, TimeUnit.SECONDS); throw f.get(timeout, TimeUnit.SECONDS); } Das ist der code wo das problem auftritt. Es soll folgendermaßen funktionieren, der benutzer gibt eine zeit ein, diese wird in sekunden umgerechnet und der Pc soll dann zum beispiel in 1 stunde in den ruhemodus versetzt werden.. aber sobald ich die eingabe bestätige reagiert das programm nicht mehr. Weiß jemand woran es hier scheitert ?
  2. Marv04

    Java Layout frage

    Hey SakulRelda, ja das eigentliche Problem ist gelöst, aber ich glaube es ist nicht Optimal gelöst. Ich Poste mal mein Startpanel wo sich das ganze abspielt. package view; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JPanel; public class Startpanel extends JPanel implements ActionListener{ private panelabc test1 = new test1(); private panel123 test2 = new test2(); private panelpic test3 = new test3(); private JButton btn1 = new JButton("Test1"); private JButton btn2 = new JButton("Test2"); private JButton btn3 = new JButton("Test3"); private JPanel AllBtn = new JPanel(); public Startpanel(){ AllBtn.add(Test1); AllBtn.add(Test2); AllBtn.add(Test3); Test1.addActionListener(this); Test2.addActionListener(this); Test3.addActionListener(this); setLayout(new BorderLayout(10,10)); add(AllBtn, BorderLayout.NORTH); //Test1 Panel hinzufügen add(Test1, BorderLayout.CENTER); Test1.setVisible(false); //Test2 Panel hinzufügen add(Test2, BorderLayout.WEST); Test2.setVisible(false); // Panel Test3 hinzufügen add(Test3, BorderLayout.EAST); Test3.setVisible(false); } @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub if (arg0.getSource() == Test1) { AllBtn.setVisible(false); Test1.setVisible(true); } if (arg0.getSource() == Test2) { AllBtn.setVisible(false); Test2.setVisible(true); } if (arg0.getSource() == Test3) { AllBtn.setVisible(false); Test3.setVisible(true); } } } Es sieht jetzt so aus das sobald ich auf einen Button klicke das entsprechende Panel erscheint.. Das Problem ist aber noch das ich das ganze nicht Zentriert angezeigt bekomme, sobald ich bei allen drei Panels Borderlayout.Center stehen habe werden sie nach einem Klick nicht angezeigt. Erst sobald ich es so mache wie es jetzt zu sehen ist kriege ich die Panels angezeigt. :confused:
  3. Marv04

    Java Layout frage

    Sorry Jungs.. im Prüfungsstress Total vergessen hier wieder vorbei zu schauen.. Ich versteh was ihr meint bzw was ich machen soll.. mir fehlt aber die zündende idee das umzusetzten.. habt ihr da ein beispiel Code oder wisst wo ich das nachschlagen kann ? Du meinst also ich solle die Buttons in ein JPanel auslagern ? habe ich jetzt gemacht (habe eine Mainframe und ein Startpanel mit den Buttons und drei weitere Panels die auf Button klick aufgerufen werden sollen), bin auch nun soweit das ich durch klick die verschiedenen Panels aufrufen kann, bin aber damit absolut nicht zufrieden.. ich kann es posten weiß aber nicht ob es eventuell zu viel ist.
  4. Marv04

    Java Layout frage

    Moin Leute, und zwar habe ich eine frage an euch und zwar möchte ich durch einen Klick auf einen Button das jetzige Layout schließen und durch ein neues ersetzten, aber ich weiß nicht wie, damit habe ich noch nie gearbeitet, hatte sozusagen immer nur single Layouts.. Hier einmal meine Mainframe, das ist jetzt nur ein Projektbeispiel, und zwar soll jetzt durch klick auf den Button der Zweite Quelltext angezeigt werden und der Button soll verschwinden. MainFrame Code import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class mainFrame extends JFrame implements ActionListener { //Objekt der klasse Test angelegt test t = new test(); //Button anlegen private JButton btntest = new JButton("New Layout"); Container cp = getContentPane(); public mainFrame(){ cp.setLayout(null); btntest.setBounds(100, 50, 100, 30); cp.add(btntest); setTitle(""); setSize(300,300); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); add(t, BorderLayout.CENTER); btntest.addActionListener(this); } public static void main(String[] args) { // TODO Auto-generated method stub new mainFrame(); } @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub if (arg0.getSource() == btntest) { cp.setVisible(false); t.setVisible(true); } } } Und hier das test layout was nachdem klick angezeigt werden soll.. import java.awt.BorderLayout; import java.awt.Container; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JTextField; public class test extends JPanel { private JTextField txt1 = new JTextField(); private JTextField txt2 = new JTextField(); private JButton reset = new JButton("Zurücksetzten"); public test(){ setLayout(new BorderLayout(10,10)); add(txt1); add(txt2); add(reset); } } Die frage ist halt nun, wie kriege ich das hin ?

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...