Ich arbeite gerade an einem Spiel, das einen Scanner verwendet, um mit dem Benutzer zu interagieren. Das Spiel war zuerst textbasiert, also war die Java-Konsolenansicht das, was ich gespielt habe. Jetzt muss ich das Spiel in ein Gui oder Jframe umwandeln, also möchte ich in der Lage sein, die gleiche Konsolenfunktion innerhalb des Rahmens zu haben, während ich auch weiterhin den Scanner benutzen kann. Irgendwelche Ideen? Ich bin neu bei der Codierung, so dass jede Hilfe oder der gleiche Code sehr geschätzt wird! DankeHinzufügen einer Konsole zu einem Jframe
Antwort
Sie könnten eine GUI erstellen, die wie eine Konsole aussieht, wie durch eine JTextArea
zum Anzeigen der Konsole Text und mit einem JTextField
wo der Benutzer die Informationen eingeben können sie an die Konsole senden möchten. Wenn Sie KeyListener
zu JTextField
hinzufügen, können Sie darauf warten, dass der Benutzer die Eingabetaste drückt und die Informationen an die Konsole senden.
Anstatt Benutzereingaben von der Konsole zu lesen (die sitzt und darauf wartet, dass der Benutzer die Eingabe der Informationen beendet und dann eine Aktion ausführt), würden Sie einfach auf die 'Enter'-Taste warten und dann eine Methode aufrufen Ihr 'JTextField' Text.
Es gibt eine Menge Interesse an einer solchen Komponente. Hier sind einige andere Diskussionen auf SO mit guten Hinweisen für die Umsetzung dieses:
- Looking for an efficient Java Swing based console
- Create a Command console
- Java Swing console component
- Create Java command console in JPanel
und es gibt noch mehr, wenn Hinweise, wenn Sie die Nutzungsbedingungen Google "swing console".
- 1. Konsole in einem JFrame
- 2. Hinzufügen von zwei Panels zu einem JFrame
- 3. Hinzufügen von JPanel zu JFrame
- 4. TextField nicht zu jFrame hinzufügen
- 5. JApplet zu JFrame (oder AWT-Rahmen) hinzufügen
- 6. Hilfe beim Hinzufügen eines Paddle zu einem JFrame
- 7. Hinzufügen eines Window zu JFrame (Fenster geöffnet)
- 8. Kann JTextField nicht zu JFrame hinzufügen
- 9. 2 oder mehr Objekte zu JFrame hinzufügen
- 10. Hinzufügen JPanel zu JFrame hat nicht funktioniert
- 11. Wie transferiere ich Objekte von Jframe zu einem anderen Jframe?
- 12. Aktivieren von jframe von einem anderen jframe
- 13. Refresh JList in einem JFrame
- 14. Bilder in einem JFrame
- 15. Hinzufügen von GUI zu C++ Win32-Konsole
- 16. Zeichnen über ein JPanel und Hinzufügen der JPanel zu JFrame
- 17. Hinzufügen von Bildern zu JFrame aus anderen Klassen
- 18. Umleiten von Konsole zu einer Zeichenfolge in einem .NET-Programm
- 19. Hinzufügen einer Variablen zu einem ASP.NET CustomValidator
- 20. Hinzufügen einer Farblegende zu einem Bild
- 21. Hinzufügen einer Zeichenfolge zu einem Zeichenfolgenzeiger
- 22. Hinzufügen einer WHERE-Klausel zu einem Fremdschlüssel
- 23. Schienen: Hinzufügen einer Aktion zu einem Controller
- 24. Hinzufügen einer horizontalen Bildlaufansicht zu einem ListView
- 25. Hinzufügen einer Fehlermeldung zu einem benutzerdefinierten Validierer
- 26. Hinzufügen einer QuickInfo zu einem Eingabefeld
- 27. Hinzufügen einer Liste zu einem numpy Array
- 28. Hinzufügen einer Minimierungsschaltfläche zu einem Qt-Dialog?
- 29. Hinzufügen einer Schaltfläche zu einem Dialogfeld dynamisch
- 30. Hinzufügen einer Schaltfläche zu einem WPF DataGrid
Mein Ratschlag: nicht. Wenn Sie eine GUI verwenden, behindern Sie es nicht auf diese Weise. –
Hallo @HovercraftFullOfEels! Können Sie vorschlagen, was stattdessen getan werden kann? Ich fand diese Frage sehr interessant. – TechSpellBound
Ein Konsolenprogramm ist von Natur aus ein lineares Programm, das seine Fähigkeiten in hohem Maße einschränkt, während eine GUI ein ereignisgesteuertes Programm ist, dessen Verhalten nicht davon abhängt, wo in einer Zeile Sie sich befinden, sondern vom aktuellen Zustand des Programms die Eingabe des Benutzers. Wenn Sie eine GUI erstellen, binden Sie sie nicht an einen Scanner, sondern machen Sie sie grafisch und ereignisgesteuert. –