Frage

ich mein erstes Java-Programm (in Netbeans) schreiben, und ich bin verloren. Ich habe 2 Fragen im Moment, wenn jemand nett genug, um zu helfen, ist mir.

Hier ist, was das Programm tun soll:

nehmen Sie 1 von 4 „Status“ Optionen sowie eine 5-stellige Nummer (diese beiden Elemente durch einen Benutzer über einen Touch-Screen-Monitor eingegeben werden) und dann per E-Mail diese Informationen an jemanden mit der Betreffzeile: „Item # [5-stellige Zahl von JFormattedTextField] ist derzeit [1 von 4 möglichen Statusoptionen].

E-Mail-Befehl nach Benutzer klickt „Enter“ -Taste gebieten würde, und dann Benutzer klickt auf „OK“ auf einem Pop-up, die über Benutzer-Bestätigungsnachricht fragt per E-Mail zu. Soweit meine dritte Frage geht es um den E-Mail-Versand Teil, und ich dachte, dass ein anderer Thread wäre, nachdem ich diese Taste & Textfeld Zeug ausgebügelt.

Hier ist ein Bild der UI-Touchscreen ich bisher haben: (Kann nicht Post-Bilder als Rookie, gehen Sie zu krisbunda.com/gui.png für dieses Bild)

Frage 1: die 4 Statusoptionen (4 JButtons) innerhalb eines JPanel gewickelt. Ich möchte das letzte Button in der „Statuspanel“ JPanel geschoben wurden, um den Hintergrund zu blau und die Schaltfläche Text auf Weiß zu ändern.

setzen kann ich einen Mouselistener auf der Eltern-Taste JPanel für Click-Ereignisse auf die Kinder zu hören (die 4 Status JButtons) und dann je nachdem, welche Taste wurde zuletzt angeklickt, wird es blau w / weißer Text drehen? Bitte zeigen Sie mir in die richtige Richtung.

Frage 2: Ich habe ein JFormattedTextField „Display“ genannt, das zeigt die Zahlen, wie sie angeklickt sind, die aus einem String namens „aktuellen“ angehängt werden. Ich mag das Textfeld nur insgesamt 5 Nummern übernehmen.

Als ich versuchte, eine Maske von „#####“ auf dem Feld setzen, wäre es nur einen Warnton läuten, wenn ich auf den Nummernblockes der Tasten gedrückt. „: Nummer Kategorie“ und „Format: custom“ und dann getippt „#####“ in dem zur Zeit habe ich gewählt „Format:“ Feld. Dies ermöglicht es mir Zifferntasten klicken und sieht ihr Text angezeigt, aber es hat mich nicht davon abhalten mehr als 5 Zeichen eingeben.

Ich tue dies durch das „Eigenschaften> FormatterFactory“ Dialogfeld. Ein Screenshot ist unten dargestellt: (Gehen Sie zu krisbunda.com/text-formatterFactory.png diesem Bild zu sehen)

Und hier ist der Code, den ich bisher habe: (Mein Beitrag war zu lange mit diesem Code, so gehen Sie zu: krisbunda.com/java-sampleCode.txt Blick)

Vielen Dank im Voraus für jede Hilfe!

War es hilfreich?

Lösung

Der Code sieht gut aus und haben Sie bereits Felder einrichten zu halten, Verweise auf alle Ihre Tasten, so dass Sie nun einfach den Code in den Status Einstelltasten schreiben müssen und dann machen sie ein Unterprogramm mit dem neuen Status aufrufen. Dieses Unterprogramm sollte dann alle Tasten auf die Standardfarbe zurückgesetzt und dann die spezielle ausgewählte Farbe auf der Schaltfläche eingestellt, dass entspricht den neuen oder vorhandenen Status.

Bearbeiten: Hinzufügen von Code hier als Antwort auf Ihren Kommentar ...

Zum einen nie == mit Strings verwenden. Sie MÜSSEN equals() sonst verwenden, wenn Sie zwei Strings erhalten, die identisch sind, aber unterschiedliche Objekte, werden sie nicht gleich sind und Ihre Vergleiche wird fehlschlagen.

Es gibt viel bessere Möglichkeiten, diese bis zur Codierung, einschließlich der Verwendung enums etc., aber dies sollte für Sie arbeiten:

// Reset all the buttons
outsideNotReadyButton.setBackground(...);
loadedButton.setBackground(...);
outsideReadyButton.setBackground(...);
shippedButton.setBackground(...);

// Now set the one of the button's colors conditionally
String status = ...

if(status.equals("SHIPPED")) {shippedButton.setBackground(Color.BLUE);}
else if(status.equals("LOADED")) {loadedButton.setBackground(Color.BLUE);}
// ...and so on

Andere Tipps

  1. Ein ActionListener ist der häufigere Ansatz zu den Knöpfen, wie in So verwenden Sie die Tasten, etc . Ein FocusListener , auch in diesem example , ist eine Möglichkeit, eine Taste Auftritt in der Art und Weise Sie beschreiben, zu ändern.

  2. Ein sscce zeigt nur Ihre JFormattedTextField Problem wird mehr hilfreich. Mehrere solche Beispiele Wie können in dem Artikel finden Verwenden Sie Formatierte Textfelder .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top