Choice auswahl und String in Int

Status
Nicht offen für weitere Antworten.

KoelOpa

Mitglied
Moin moin,

also folgenden Code habe ich geschrieben:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Message extends JApplet implements ActionListener
{
  Choice ch = new Choice();
  JLabel begruessung = new JLabel("Nachrichtenprogramm");
  JTextField nr = new JTextField();
  TextArea text = new TextArea();
  JButton senden = new JButton("senden");
  JLabel empfaenger = new JLabel();
  JLabel label = new JLabel();
  Container c = new Container();
  JPanel oben = new JPanel();
  JPanel unten = new JPanel();
  JPanel rechts = new JPanel();
  
  public void init()
  {
    c = this.getContentPane();
    senden.addActionListener(this);
    c.setLayout(new BorderLayout());
    c.add(BorderLayout.NORTH, oben);
    c.add(BorderLayout.EAST, rechts);
    c.add(BorderLayout.CENTER, text);
    c.add(BorderLayout.WEST, label);
    c.add(unten, BorderLayout.SOUTH);
    oben.setLayout(new GridLayout(2,2));
    oben.add(begruessung);
    oben.add(empfaenger);
    ch.addItem("");
    ch.addItem("0151 (D1)"); ch.addItem("0152 (D2)"); ch.addItem("0157 (E-Plus)");
    ch.addItem("0160 (D1)"); ch.addItem("0162 (D2)"); ch.addItem("0163 (E-Plus)");
    ch.addItem("0170 (D1)"); ch.addItem("0171 (D1)"); ch.addItem("0172 (D2)");
    ch.addItem("0173 (D2)"); ch.addItem("0174 (D2)"); ch.addItem("0175 (D1)");
    ch.addItem("0176 (O2)"); ch.addItem("0177 (E-Plus)"); ch.addItem("0178 (E-Plus)");
    ch.addItem("0179 (O2)");
    oben.add(ch);
    oben.add(nr);
    unten.setLayout(new FlowLayout(FlowLayout.CENTER));
    unten.add(label);
    rechts.setLayout(new GridLayout(1,3));
    rechts.add(senden);
  }
  
  public void actionPerformed(ActionEvent e)
  {
    label.setText(e.getActionCommand());
    if(text.getText().length() == 0) label.setText("Geben Sie Ihren Text ein!");
    else if(text.getText().length() >= 137)
     label.setText("Nachricht nicht versendet, da " + (text.getText().length()-160) + " Zeichen zu viel");
    else if(text.getText().length() < 137) label.setText("Nachricht versendet!");

    if //ch.BRAUCHMETHODE falls "" ausgewählt wurde und keine Vorwahl label.setText("Vorwahl wählen!");
    if(nr.getText() != Integer.toString())  label.setText("Keine gültige Tel. nr!");
  }
}

Zu den letzten beiden Zeilen hätte ich gerne Hilfe.

Und zwar soll will ich vergleichen, ob der Benutzer ch.addItem(""); ausgewählt hat. Wenn dem so ist, so soll mir label.setText("Vorwahl wählen!"); ausgeben.
Wie stelle ich das nun an?

Beim zweiten hätte ich gerne gecheckt bekommen ob der String nur Integer enthält. Wenn auch nur ein Zeichen dieses String kein Int ist, dann will ich dass label.setText("keine gültige Tel. nr!"); ausgibt.
Dieselbe Frage: Wie stelle ich das an?
Weil mein Compiler spuckt an dieser Stelle folgenden Fehler aus:
Code:
Message.java:56: non-static method toString() cannot be referenced from a static context
    if(nr.getText() != Integer.toString())  label.setText("Keine gültige Tel. nr!");


Greeetz

Opa
:cool:
 
S

SlaterB

Gast
Choice abfragen, Index == 0 oder das aktuelle Element genau anschauen,
wie die entsprechenden Befehle heißen steht doch in der API

---------

try {
Integer.parseInt(string)
} catch (Exception e) {
// bei Exception: keine Zahl
}


oder Zeichen des Strings durchlaufen und mit Character.isDigit() testen
 

The_S

Top Contributor
Bevor ich mir das hier weiter durchlese:

Du verwendest größtenteils Swing, aber mittendrin aufeinmal Choice und TextArea, was AWT ist. Swing und AWT nie mischen! Besser das erstmal aus!
 

KoelOpa

Mitglied
Also moin Leute!

Aber es will nicht.... Hobbit_im_Blutrausch, deine Anweisungen habe ich mal auch übernommen, alles in Swing.

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;

public class Digital extends JFrame implements ActionListener
{
  JPanel oben = new JPanel();
  JPanel unten = new JPanel();
  JPanel rechts = new JPanel();
  
  Container c = new Container();

  JLabel begruessung = new JLabel("Nachrichtenprogramm");
  JLabel empfaenger = new JLabel();
  JLabel label = new JLabel();

  JComboBox box = new JComboBox();

  JTextArea text = new JTextArea();
  
  JTextField nr = new JTextField();
  
  JButton senden = new JButton("senden");
  
  public static void main(String[] argv)
  {
    Frame f = new Digital();
    f.show();
  }
  
  
  public Digital()
  {
    super("Nachrichtenprogramm");
    c = this.getContentPane();
    setSize(450,300);
    addWindowListener(new DemoAdapter());
    c.setLayout(new BorderLayout());
    senden.addActionListener(this);
    c.add(BorderLayout.NORTH, oben);
    c.add(BorderLayout.EAST, rechts);
    c.add(BorderLayout.CENTER, text);
    c.add(BorderLayout.WEST, label);
    c.add(unten, BorderLayout.SOUTH);
    oben.setLayout(new GridLayout(2,2));
    oben.add(begruessung);
    oben.add(empfaenger);
    box.addItem("");
    box.addItem("0151 (D1)"); box.addItem("0152 (D2)"); box.addItem("0157 (E-Plus)");
    box.addItem("0160 (D1)"); box.addItem("0162 (D2)"); box.addItem("0163 (E-Plus)");
    box.addItem("0170 (D1)"); box.addItem("0171 (D1)"); box.addItem("0172 (D2)");
    box.addItem("0173 (D2)"); box.addItem("0174 (D2)"); box.addItem("0175 (D1)");
    box.addItem("0176 (O2)"); box.addItem("0177 (E-Plus)"); box.addItem("0178 (E-Plus)");
    box.addItem("0179 (O2)");
    oben.add(box);
    oben.add(nr);
    unten.setLayout(new GridLayout(2,2));
    unten.add(senden);
    unten.add(label);
    rechts.setLayout(new GridLayout(1,3));
    
  }
  
  public void actionPerformed(ActionEvent e)
  {
    label.setText(e.getActionCommand());
    if(text.getText().length() == 0) label.setText("Geben Sie Ihren Text ein!");
    else if(text.getText().length() >= 137)
     label.setText("Nachricht nicht versendet, da " + (text.getText().length()-160) + " Zeichen zu viel");
    else if(text.getText().length() < 137) label.setText("Nachricht versendet!");

    char[] c = nr.getText().toCharArray();
    if(c != Character.isDefined()) label.setText("Keine gültige Telefonnummer!");
  }
  
  static class DemoAdapter extends WindowAdapter
  {
    public void windowClosing(WindowEvent e)
    {
      System.exit(0);
    }
  }
}


Es will und will einfach nicht. Ich habe den String bei der Nummerneingabe in ein char[] umgewandelt und will dies vergleichen ob das Unicode is, aber wieder niente. Wie kann ich denn am einfachsten prüfen ob mein String wirklich nur aus Zahlen besteht... nr.getText() != Integer.toString() geht nicht, da es keine statische Methode ist.... mann mann mann..

Das mit der Vorwahl hat übrigens ebensowenig geklappt...

Weiß irgendwer womit ich die Eingaben des Benutzers automatisch mitzählen kann?
Mit dem CaretListener vielleicht?
 
S

SlaterB

Gast
> und will dies vergleichen ob das Unicode is

was soll da denn intern passieren? wie kann ein Computer (oder du als Mensch) etwas vergleichen, ob es Unicode ist?

zu deiner anderen Idee:
selbst wenn Integer.toString() existieren würde,
warum sollte nr.getText() != Integer.toString() etwas sinnvolles ergeben,
was stellst du dir darunter vor?

ich habe dir ja bereits einen absolut narrensicheres Verfahren genannt:
schau dir jedes Zeichen des Strings an und prüfe ob es eine Ziffer ist,
ob es '0','1', ..'9' ist, (kürzer: Character.isDigit(char))
so würde es auch jeder Mensch machen

du kannst doch nicht stattdessen irgendeinen unbekannten Befehl hinschreiben und dich dann wundern,
dass es nicht geht?..

Programmieren ist in erster Linie Denken..
 

Rydl

Bekanntes Mitglied
man kann auch ganz einfach regex(regularexpression) benutzen:

textLabel.getText().matches("^[\\d]+$");
 

KoelOpa

Mitglied
Slater8: Danke für die Hilfe, habe es in einer booleschen Methode realisiert, klappt einwandrei.

So, zu meiner anderen Frage, kann mir da keiner nen Tipp geben?!


Weiß irgendwer womit ich die Eingaben des Benutzers automatisch mitzählen kann?
Mit dem CaretListener vielleicht?
 

The_S

Top Contributor
Eingaben automatisch mitzählen? Möchtest du mitbekommen, wenn der User etwas eintippt? Falls ja, je nach Verwendungszweck KeyListener oder DocumentListener.

AWT und Swing nicht mischen, da es sonst zu darstellungsproblemen kommen kann. Gibt auch nen Beitrag in den FAQ
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JavaFX aktuelle Tabellenzeile bei Choice-Box-Auswahl in Zelle ermitteln AWT, Swing, JavaFX & SWT 28
J AWT choice mit viel Auswahl aktualisiert sich nicht korrekt beim scrollen?! AWT, Swing, JavaFX & SWT 3
cezary Choice, JComboBox oder JList AWT, Swing, JavaFX & SWT 5
N Swing Choice- Problem! AWT, Swing, JavaFX & SWT 8
S Multiple Choice Test AWT, Swing, JavaFX & SWT 2
Q AWT Choice ein Zeichen hinzufügen AWT, Swing, JavaFX & SWT 4
N Java Choice Bilderausgabe - images - - image - AWT, Swing, JavaFX & SWT 2
L choice probleme AWT, Swing, JavaFX & SWT 9
T Choice "gezielt" darstellen aber wie - mit Koordinaten aber wie? AWT, Swing, JavaFX & SWT 6
F Probleme mit der GUI (Choice) AWT, Swing, JavaFX & SWT 3
H2SO3- choice mit mehrfarbigen einträgen AWT, Swing, JavaFX & SWT 4
I Choice erkennen AWT, Swing, JavaFX & SWT 3
S Choice editierbar machen? AWT, Swing, JavaFX & SWT 6
A Checkbox-Choice Eventproblem (CMV) AWT, Swing, JavaFX & SWT 2
S Dringend: Choice -> PrintLn? AWT, Swing, JavaFX & SWT 11
O Choice/Combobox wird nur 1x aktualisiert AWT, Swing, JavaFX & SWT 3
B Zwei Choice-Menüs verknüpfen AWT, Swing, JavaFX & SWT 2
K Textarea aktuallisiert sich nicht, nach Auswahl (Itemlistener) AWT, Swing, JavaFX & SWT 3
R Auswahl mehrerer JComboBoxen verknüpfne AWT, Swing, JavaFX & SWT 17
B Mit der ChoiceBox-Auswahl Textfelder hinzufügen AWT, Swing, JavaFX & SWT 18
S n aus m - Auswahl AWT, Swing, JavaFX & SWT 2
M Swing JList Auswahl-GUI-Konzept AWT, Swing, JavaFX & SWT 9
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
M Auswahl aus einer ListView AWT, Swing, JavaFX & SWT 3
F JavaFX ChoiceBox Name als Auswahl bei einer Objektliste AWT, Swing, JavaFX & SWT 4
G Swing ComboBox: Auswahl eines Items der Liste durch Eingabe eines Buchstabens AWT, Swing, JavaFX & SWT 3
M Combo Box auswahl in eine Datenbank speichern AWT, Swing, JavaFX & SWT 1
M JavaFX Combobox - Item Auswahl mit Tasten AWT, Swing, JavaFX & SWT 8
S JComboBox nach auswahl erneuern AWT, Swing, JavaFX & SWT 4
A Swing bei Auswahl und klick eines JComboBox buttons die Klasse eines anderen Projekts aufrufen AWT, Swing, JavaFX & SWT 3
T Importer-Auswahl im JFileChooser AWT, Swing, JavaFX & SWT 3
I Anhand ButtonGroup eine Auswahl treffen AWT, Swing, JavaFX & SWT 2
P Listener Auswahl Tabelle AWT, Swing, JavaFX & SWT 6
M JComboBox Item-Auswahl in JTable AWT, Swing, JavaFX & SWT 2
M SWT Wie mehr als 5000 Einträge zur Auswahl geben? AWT, Swing, JavaFX & SWT 9
G JComboBox mit CellRenderer (Auswahl) AWT, Swing, JavaFX & SWT 11
N automatische Auswahl einer JComboBox AWT, Swing, JavaFX & SWT 6
E JTree Auswahl AWT, Swing, JavaFX & SWT 2
P Swing Auswahl einer JComboBox für eine andere JComboBox übernehmen AWT, Swing, JavaFX & SWT 4
R JPanel wird erst neu gezeichnet nach erneuter auswahl AWT, Swing, JavaFX & SWT 8
F Swing Auf JComboBox-Event erst NACH Auswahl reagieren AWT, Swing, JavaFX & SWT 8
T Auswahl in GUI-Builder mit Grafiken ausstatten AWT, Swing, JavaFX & SWT 4
M Swing jList Auswahl löschen AWT, Swing, JavaFX & SWT 2
H JTree - nach Auswahl aus JFileChooser wird nur der erste Knoten angezeigt AWT, Swing, JavaFX & SWT 3
U JComboBox: (Vor)auswahl nach Aktualisierung AWT, Swing, JavaFX & SWT 2
Semox Swing JMenuItem-Auswahl mit Aktion ausführen AWT, Swing, JavaFX & SWT 4
C Welche Farbe hat die Auswahl in einer JTable? AWT, Swing, JavaFX & SWT 2
M SWT Wie Textfeld hinzufügen, nach Auswahl von einem bestimmten Combobox-item? AWT, Swing, JavaFX & SWT 3
S Swing JTable Auswahl mehrerer Zellen mit STRG+Maus AWT, Swing, JavaFX & SWT 3
P verschiedene JPanels einblenden je nach auswahl AWT, Swing, JavaFX & SWT 2
P Speichern und Auswahl gezeichneter Objekte AWT, Swing, JavaFX & SWT 7
K Auswahl einer ButtonGroup erfahren AWT, Swing, JavaFX & SWT 3
G JTextfield Inhalt markieren bei Auswahl AWT, Swing, JavaFX & SWT 2
H Auswahl in JComboBox abbrechen AWT, Swing, JavaFX & SWT 5
DEvent Standard Font-Auswahl-Dialog? AWT, Swing, JavaFX & SWT 15
DEvent Je nach Auswahl in Liste entsprechende Input-Elemente anzeig AWT, Swing, JavaFX & SWT 2
B Relative Pfadangaben beibehalten bei Auswahl in Dialog AWT, Swing, JavaFX & SWT 2
E JComboBox auswahl einschraenken AWT, Swing, JavaFX & SWT 5
G Screen nach Auswahl schließen und neuen öffnen?wie mach ichs AWT, Swing, JavaFX & SWT 8
M JTable mit JCombobox eigene Auswahl pro Zeile ? AWT, Swing, JavaFX & SWT 3
M Farb/bild auswahl AWT, Swing, JavaFX & SWT 15
C Aktion nach Auswahl einer Checkbox AWT, Swing, JavaFX & SWT 6
R Verzeichnis-Auswahl mit FileDialog ? AWT, Swing, JavaFX & SWT 3
G JComboBox nimmt Auswahl nicht an AWT, Swing, JavaFX & SWT 5
N JList: Auswahl erzwingen AWT, Swing, JavaFX & SWT 6
H Doppelte Auswahl bei ItemEvent für eine Dropdownliste AWT, Swing, JavaFX & SWT 5
C Swing Übergabe von String an JLabel AWT, Swing, JavaFX & SWT 9
2 JavaFX die ChoiceBox leitet den String nicht weiter oder es komm zu einem NullPointer AWT, Swing, JavaFX & SWT 8
officialmaxl JavaFX Textfield getTextfield() in String speichern AWT, Swing, JavaFX & SWT 1
H String zu int/long AWT, Swing, JavaFX & SWT 8
D String als Textdatei in ausgewähltem Speicherplatz speichern AWT, Swing, JavaFX & SWT 32
R Swing Ein gezeichneten String aus dem JFrame löschen AWT, Swing, JavaFX & SWT 5
H String teilen, damit bei JLabel keine Punkte am Ende angezeigt werden AWT, Swing, JavaFX & SWT 4
J SWT Search string highlite AWT, Swing, JavaFX & SWT 5
M JavaFX String aus TextField reagiert nicht wie erwartet AWT, Swing, JavaFX & SWT 3
F RGB-Werte aus einem String einlesen AWT, Swing, JavaFX & SWT 26
J Event Handling Input auf String testen, Fehlermeldung ausgeben AWT, Swing, JavaFX & SWT 4
D JavaFX ComboBox String setzen AWT, Swing, JavaFX & SWT 20
Y Darstellung und MouseHover bei bestimmten Wörtern in einem String AWT, Swing, JavaFX & SWT 2
X Zeilen aus einer Textdatei einzelnd als String abrufen AWT, Swing, JavaFX & SWT 8
KilledByCheese Event Handling Vom ActionEvent auf String zugreifen - genaueres in der Beschreibung AWT, Swing, JavaFX & SWT 3
T replace string AWT, Swing, JavaFX & SWT 1
D String zu StringProperty Konvertieren AWT, Swing, JavaFX & SWT 4
T jTextField mit String befüllen AWT, Swing, JavaFX & SWT 1
E Eigenes TableModel für ArrayList<String[]> AWT, Swing, JavaFX & SWT 5
F Swing String[] in JTextArea ausgeben. Jeder Eintrag in neue Zeile, aber ohne "\n"- Geht das? AWT, Swing, JavaFX & SWT 3
L Zwei String Array in eine Spalte einfügen AWT, Swing, JavaFX & SWT 1
P DefaultStyledDocument eingegebenen String durchsuchen und bestimmte Sachen einfärben AWT, Swing, JavaFX & SWT 1
B 2D-Grafik String drehen/platzieren/formatieren in bestimmten Bereich AWT, Swing, JavaFX & SWT 1
A Swing Logikaufgabe: Zeilenanzahl einer JTable mit 3d String dynamisch anpassen AWT, Swing, JavaFX & SWT 2
S XML Output String Format AWT, Swing, JavaFX & SWT 2
R Swing JTextField getText() liefert leeren String AWT, Swing, JavaFX & SWT 6
P Swing String mit unterschiedlichen Formaten zusammenbauen AWT, Swing, JavaFX & SWT 14
T Swing HTML Text aus JLabel ohne "HTML-Tags" in String einlesen AWT, Swing, JavaFX & SWT 5
J 2D-Grafik String aus array wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
L Swing JToogleButton Vordergrundfarbe bei HTML String AWT, Swing, JavaFX & SWT 4
T Swing JProgressBar mit String unschön AWT, Swing, JavaFX & SWT 5
M Swing String zerlegen AWT, Swing, JavaFX & SWT 2
J Swing String soll als Variable dienen AWT, Swing, JavaFX & SWT 11
A Text (String) zu einer Box hinzufügen AWT, Swing, JavaFX & SWT 16

Ähnliche Java Themen

Neue Themen


Oben