Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Java
You last visited: Today at 04:34

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Java] Während Methode Fenster öffnen und Variable ablesen

Discussion on [Java] Während Methode Fenster öffnen und Variable ablesen within the Java forum part of the Coders Den category.

Reply
 
Old   #1
 
Chicken17's Avatar
 
elite*gold: 7
Join Date: May 2009
Posts: 6,910
Received Thanks: 4,497
[Java] Während Methode Fenster öffnen und Variable ablesen

Hey,

in meinem Programm läuft ne Methode ab. Irgendwann muss dann ein Key eingelesen werden. Ich bekomme es aber einfach nicht hin, dass sich in meiner Methode irgendwann ein simples Fenster öffnet, das ein Text Feld, ein Label und einen Knopf enthält und beim Knopf Druck den Text aus dem Feld einliest und als String speichert, welcher in dann in meiner Methode weiter verwendet werden soll.

Wäre cool wenn mir jemand helfen kann
Chicken17 is offline  
Old 01/25/2014, 22:21   #2
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
Sagt dir JOptionPane etwas? Mit dem kann man ganz simpel dein Problem lösen.


Code:
String input =  JOptionPane.showInputDialog(null, "Enter in some text:");
if(input != null) {
    // do your work here
}
XxharCs is offline  
Thanks
1 User
Old 01/25/2014, 22:24   #3
 
Zunft's Avatar
 
elite*gold: 0
Join Date: Mar 2013
Posts: 3,185
Received Thanks: 1,317
Wenn ich dich richtig verstehe willst du innerhalb einer Methode ein JFrame bzw. ein Fenster öffnen.
Das geht folgendermaßen:

Code:

NAME_DES_JFRAMES t;

[...]
public void oeffneframe()
{
t = new NAME_DES_JFRAMES();
}
Um das Fenster zu designen solltest du dann eine passende Entwicklungsemgebung verwenden. Ich benutze hierfür NetBeans.

Beim Druck auf Knopf einlesen(Snippet):
Code:
public static String inhalt = null;

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        inhalt = jTextField1.getText().toString();
        jLabel1.setText(inhalt);
    }
Kompletter Code (inklusive Frame) - generiert mit Netbeans:



Um den String 'inhalt' dann in einer anderen Klasse zu verwenden muss der String public static sein. Verwenden tust du diesen dann folgendermaßen:

Code:
NAME_DES_JFRAMES t;

[...]
public void oeffneframe()
{
System.out.println(t.inhalt);
}
Zunft is offline  
Thanks
1 User
Old 01/25/2014, 22:47   #4
 
Chicken17's Avatar
 
elite*gold: 7
Join Date: May 2009
Posts: 6,910
Received Thanks: 4,497
@ XxharCs Dich wollte ich vorhin schon anschreiben aber du warst nicht on

Boar man, da hätte ich mir das ewige (!) rumprobieren sparen können! Vielen Dank, genau das was ich gebraucht hab. Die Funktion war mir noch nicht bekannt




@Zunft Danke, genau so wollte ich das auch lösen, bloß mein Problem war: wie kann ich bei der Netbeans GUI einstellen, dass das Fenster nicht von vorn herein offen ist sondern erst später geöffnet wird?
Chicken17 is offline  
Old 01/25/2014, 22:59   #5
 
Zunft's Avatar
 
elite*gold: 0
Join Date: Mar 2013
Posts: 3,185
Received Thanks: 1,317
Quote:
Originally Posted by Chicken17 View Post
@Zunft Danke, genau so wollte ich das auch lösen, bloß mein Problem war: wie kann ich bei der Netbeans GUI einstellen, dass das Fenster nicht von vorn herein offen ist sondern erst später geöffnet wird?
Erstell doch einfach eine zweite Klasse von wo du, wenn du das Fenster haben willst aufrufst.

Du könntest auch initComponents woanders hinpacken, nur dann sieht dein Fenster so aus:


Ansonsten ist mir keine weitere Möglichkeit bekannt.
Zunft is offline  
Thanks
1 User
Old 01/25/2014, 23:02   #6
 
Chicken17's Avatar
 
elite*gold: 7
Join Date: May 2009
Posts: 6,910
Received Thanks: 4,497
Quote:
Originally Posted by Zunft View Post
Erstell doch einfach eine zweite Klasse von wo du, wenn du das Fenster haben willst aufrufst.

Du könntest auch initComponents woanders hinpacken, nur dann sieht dein Fenster so aus:


Ansonsten ist mir keine weitere Möglichkeit bekannt.

Stimmt, so könnte ich das auch lösen Danke!
Chicken17 is offline  
Old 01/25/2014, 23:31   #7
 
elite*gold: 0
Join Date: Jan 2012
Posts: 759
Received Thanks: 416
Oder ohne Form-Designer:

Quote:
JFrame frame = new JFrame();
final JTextField text = new JTextField();
JButton button = new JButton();
frame.add(text);
frame.add(button);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println(text.getText());
}
}
frame.setVisible(true);
dowhile is offline  
Thanks
1 User
Old 01/25/2014, 23:34   #8
 
Chicken17's Avatar
 
elite*gold: 7
Join Date: May 2009
Posts: 6,910
Received Thanks: 4,497
Habe die Methode von XxharCs genommen. Weiß da jemand wie ich bei

PHP Code:
String code javax.swing.JOptionPane.showInputDialog"Key eingeben" );
    
System.out.println(code); 
Dafür sorgen kann, dass der Dialog immer im Vordergrund bleibt?
Chicken17 is offline  
Old 01/25/2014, 23:55   #9
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
Habe mal eine noch schönere Lösung gefunden als die aus der PN: JDialog.

Code:
JDialog dialog = new JOptionPane("Enter text in here:", JOptionPane.QUESTION_MESSAGE,JOptionPane.DEFAULT_OPTION).createDialog("Input"); 
dialog.setAlwaysOnTop(true);
dialog.setVisible(true);
dialog.dispose();

if( dialog.getValue() instanceOf String){
       String myString = (String) dialog.getValue();
}
Vom Handy gesendet. Ich hoffe dieser Ansatz funktioniert, schreibe sowas zum ersten mal

Edit: Wenn es nicht geht, musst du dich aufjedenfall mit JDialog und JOptionPane beschäftigen. Kann grad schlecht vom Handy aus was rumprobieren, morgen erst wieder.
XxharCs is offline  
Old 01/26/2014, 00:04   #10
 
Chicken17's Avatar
 
elite*gold: 7
Join Date: May 2009
Posts: 6,910
Received Thanks: 4,497
Quote:
Originally Posted by XxharCs View Post
Habe mal eine noch schönere Lösung gefunden als die aus der PN: JDialog.

Code:
JDialog dialog = new JOptionPane("Enter text in here:", JOptionPane.QUESTION_MESSAGE,JOptionPane.DEFAULT_OPTION).createDialog("Input"); 
dialog.setAlwaysOnTop(true);
dialog.setVisible(true);
dialog.dispose();

if( dialog.getValue() instanceOf String){
       String myString = (String) dialog.getValue();
}
Vom Handy gesendet. Ich hoffe dieser Ansatz funktioniert, schreibe sowas zum ersten mal

So wäre es immer im Vordergrund, bloß wie füge ich da jetzt noch einen Feld hinzu wo ich einen Text eingeben kann und die Schleife enthält einen Fehler
Chicken17 is offline  
Old 01/26/2014, 00:21   #11
 
Zunft's Avatar
 
elite*gold: 0
Join Date: Mar 2013
Posts: 3,185
Received Thanks: 1,317
Quote:
Originally Posted by Chicken17 View Post
Quote:
Originally Posted by XxharCs View Post
Habe mal eine noch schönere Lösung gefunden als die aus der PN: JDialog.

Code:
JDialog dialog = new JOptionPane("Enter text in here:", JOptionPane.QUESTION_MESSAGE,JOptionPane.DEFAULT_OPTION).createDialog("Input"); 
dialog.setAlwaysOnTop(true);
dialog.setVisible(true);
dialog.dispose();

if( dialog.getValue() instanceOf String){
       String myString = (String)dialog.getValue();
}
Vom Handy gesendet. Ich hoffe dieser Ansatz funktioniert, schreibe sowas zum ersten mal

Edit: Wenn es nicht geht, musst du dich aufjedenfall mit JDialog und JOptionPane beschäftigen. Kann grad schlecht vom Handy aus was rumprobieren, morgen erst wieder.
So wäre es immer im Vordergrund, bloß wie füge ich da jetzt noch einen Feld hinzu wo ich einen Text eingeben kann und die Schleife enthält einen Fehler
Code:
String myString = dialog.getValue().toString();
Da ist der Fehler.


Und hier das Textfeld auf JOptionPane:
Code:
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class InputPopUps {

  public static void main(String[] a) {
    JFrame frame = new JFrame();
    Object result = JOptionPane.showInputDialog(frame, "Hier Eingabe");

    System.out.println(result);
  }

}

Quote:
Originally Posted by Chicken17 View Post
So wäre es immer im Vordergrund, bloß wie füge ich da jetzt noch einen Feld hinzu wo ich einen Text eingeben kann und die Schleife enthält einen Fehler
Btw: Bei uns im Informatik-Kurs muss jemand der "if-Schleife" sagt immer einen Kuchen backen - es ist nämlich eine if-Verzweigung
Zunft is offline  
Thanks
1 User
Old 01/26/2014, 00:29   #12
 
Chicken17's Avatar
 
elite*gold: 7
Join Date: May 2009
Posts: 6,910
Received Thanks: 4,497
Quote:
Originally Posted by Zunft View Post
Code:
String myString = dialog.getValue().toString();
Da ist der Fehler.


Und hier das Textfeld auf JOptionPane:
Code:
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class InputPopUps {

  public static void main(String[] a) {
    JFrame frame = new JFrame();
    Object result = JOptionPane.showInputDialog(frame, "Hier Eingabe");

    System.out.println(result);
  }

}



Btw: Bei uns im Informatik-Kurs muss jemand der "if-Schleife" sagt immer einen Kuchen backen - es ist nämlich eine if-Verzweigung


Danke, werde das morgen mal probieren, bin nicht mehr am PC.

Bei dem mit der "if schleife" hab ich mich neulich selbst schon ertappt, weiß auch nicht wo ich mir das angeeignet habe
Chicken17 is offline  
Old 01/26/2014, 00:33   #13
 
Zunft's Avatar
 
elite*gold: 0
Join Date: Mar 2013
Posts: 3,185
Received Thanks: 1,317
Quote:
Originally Posted by Chicken17 View Post
Danke, werde das morgen mal probieren, bin nicht mehr am PC.

Bei dem mit der "if schleife" hab ich mich neulich selbst schon ertappt, weiß auch nicht wo ich mir das angeeignet habe
Code:
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class tst {

  public static void main(String[] a) {
    JFrame frame = new JFrame();
    Object result = JOptionPane.showInputDialog(frame, "Hier Eingabe");

    System.out.println(result);
    if (result.toString().equals("123"))
    {
        JOptionPane.showMessageDialog(frame, "Herzlichen Glueckwunsch sie haben 123 eingegeben!");
    }
    else
    {
        JOptionPane.showMessageDialog(frame, "Sie haben leider nicht 123 eingegeben.");
    }
}
  }
Ich hab mal noch deine if-Verzweigung mit in das Programm eingebracht.
Zunft is offline  
Thanks
1 User
Old 01/26/2014, 14:41   #14
 
Chicken17's Avatar
 
elite*gold: 7
Join Date: May 2009
Posts: 6,910
Received Thanks: 4,497
Quote:
Originally Posted by Zunft View Post
Code:
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class tst {

  public static void main(String[] a) {
    JFrame frame = new JFrame();
    Object result = JOptionPane.showInputDialog(frame, "Hier Eingabe");

    System.out.println(result);
    if (result.toString().equals("123"))
    {
        JOptionPane.showMessageDialog(frame, "Herzlichen Glueckwunsch sie haben 123 eingegeben!");
    }
    else
    {
        JOptionPane.showMessageDialog(frame, "Sie haben leider nicht 123 eingegeben.");
    }
}
  }
Ich hab mal noch deine if-Verzweigung mit in das Programm eingebracht.
Die if Verzweigung brauch ich nicht, aber bei dem was du mir jetzt geschrieben hast kann ich das dialog.setAlwaysOnTop(true); ja nicht mit einbauen....
Ich brauch einfach das von XxharCs (wo das mit dem setAlwaysOnTop funktioniert) mit einem Textfeld und Knopf zum eingeben. Dort steht bloß "Hier bitte eingeben" aber ich kann ja nix eingeben.

Wenn ich bei dir
PHP Code:
frame.setAlwaysOnTop(true);
frame.setVisible(true);
frame.dispose(); 
einfüg ändert sich gar nichts
Chicken17 is offline  
Old 01/26/2014, 14:47   #15
 
Zunft's Avatar
 
elite*gold: 0
Join Date: Mar 2013
Posts: 3,185
Received Thanks: 1,317
Quote:
Dort steht bloß "Hier bitte eingeben" aber ich kann ja nix eingeben.
Code:
showInputDialog(frame, "Hier Eingabe");
Hier zeigt der eine MessagBox mit einem Label, wodrin "Hier Eingabe" steht, einem Textfeld und zwei Buttons (OK, ABBRECHEN), also kannst du was eingeben.

Quote:
bei dem was du mir jetzt geschrieben hast kann ich das dialog.setAlwaysOnTop(true); ja nicht mit einbauen....
Dann änder doch einfach

Code:
Object result = JOptionPane.showInputDialog(frame, "Hier Eingabe");
in

Code:
JDialog dialog = JOptionPane.showInputDialog(frame, "Hier Eingabe"); 
dialog.setAlwaysOnTop(true);
dialog.setVisible(true);
dialog.dispose();
Ich habs jetzt noch nicht ausprobiert, sollte aber eigentlich funktionieren.
Zunft is offline  
Reply


Similar Threads Similar Threads
Dinge aus Java Programm ablesen
12/29/2012 - AutoIt - 7 Replies
Hi, Ich bin ziiiiemlich neu in AutoIt, kann aber schon so ganz kleine Programme schreiben. Ich will demnächst für mich einen kleinen KlickerBot für FUT13( FIFA Ultimate Team 13) Web App schreiben. Das Problem ist, dass die FIFA Web App ein (ich glaube) Javaprogramm ist. Also es ist auf einer WEbsite ein Programm. Die meisten wissen hoffentlich was ich meine. Und zwar geht es mir darum: Der Bot soll für mich Spielerverträge kaufen. Das Problem ist, dass man beim Filter nur vertrag...
[Java] Variable nicht erkannt
04/14/2012 - General Coding - 3 Replies
Also ich weiß nich ob ich hier richtig bin, aber wohin sonst^^ Ich spiel grad ein bissl mit Java rum und wollte einen simplen Rechner, der +,-,* und / kann. Jedoch scheiter ich schon an +^^ Ich definiere bei + eine Variable mit int, die das Ergebnis aus dem 1. und 2. Textfeld berechnet, wandel es in einen String um und mache mit setText das ding ins Ergebnisfeld rein, funzt jedoch nicht. Im Ergebnis- Feld denk ich hab ich alles richtig, obwohl NetBeans einen Fehler anzeigt, das er die...
[C++]Variable in fstream öffnen
08/02/2010 - C/C++ - 14 Replies
Wo ist hier der fehler?
Während Spiel Maus aus Fenster bewegen
07/09/2010 - League of Legends - 5 Replies
Hi zusammen. Ich bin ein totaler LoL Noob, daher erscheint meine Frage vielleicht etwas dämlich. Ich bitte einfach um Nachsicht ;) Also ich spiele LoL im Fenstermodus und würde gerne während des Spiels die Maus aus dem Fenster bewegen können, was aber nicht möglich ist. Da ich prinzipiell ein problem damit habe, wenn ein Spiel meine Maus gefangen nimmt und die Windows Hotkey auch nicht funktionieren hoffe ich einfach, dass ihr mir weiterhelfen könnt... LG



All times are GMT +1. The time now is 04:34.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.