Permalänk

Java, grafiskt..

Hej!

Är relativt ny med det grafiska gränssnittet i java. Försöker få en utskrift i panelen, men lyckas inte.
Bifogar kod från alla filerna, så får ni gärna hjälpa mig.

Programmet skall skriva ut i panelen:
Något nummer: 4
Något nummer: 5
Något nummer: 6

samt till textfilen:
Något nummer: 1
Något nummer: 2
Något nummer: 3

ConsoleLogger

package appet; public class ConsoleLogger implements Logger { public void log(String message) { System.out.println(message); } }

FileLogger

package appet; import java.io.*; public class FileLogger implements Logger { private PrintWriter logstream; public FileLogger() { try { logstream = new PrintWriter(new FileWriter("logga.txt"), true); } catch (IOException ioe) { System.out.println("Kunde inte logga!"); ioe.printStackTrace(); } } public void log(String message) { logstream.println(message); } }

LoggHandler

package appet; public class LoggHandler { private Logger logger; public LoggHandler(Logger logger) { this.logger = logger; } public void setLogger(Logger logger) { this.logger = logger; } public void messageTest(int nummer) { logger.log("Något nummer: " + nummer); } }

Logger

package appet; public interface Logger { void log(String message); }

Main

package appet; public class Main { public static void main(String[] args) { NewFrame nyRam = new NewFrame ("Testar", new NewPanel()); LoggHandler client = new LoggHandler(new FileLogger()); client.messageTest(1); client.messageTest(2); client.messageTest(3); client.setLogger(new ConsoleLogger()); client.messageTest(4); client.messageTest(5); client.messageTest(6); nyRam.setVisible(true); } }

NewFrame

package appet; import javax.swing.*; public class NewFrame extends JFrame { public NewFrame(String title, JPanel panel) { super(title); this.setSize(640, 480); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.add (panel); } }

NewPanel

package appet; import javax.swing.*; public class NewPanel extends JPanel implements Logger { private JTextArea jta; public NewPanel() { jta = new JTextArea(); add(jta); } public void log(String message) { jta.setText(message); } }

Visa signatur

Datorn: i7 3770k, Gigabyte GA-Z77-DS3H, Corsair Vengeance 16gb, Gtx 680, Samsung 830 SSD 256gb, Seagate 1Tb, Fractal design R4, Corsair HX750 750W, DELL U2711.

Studerar: Civilingenjör IT på KTH, började HT 2009 och blir klar sommaren 2014.

Permalänk
Medlem

Bara att skriva in det du vill ha utprintat som "Message"

Tror jag

Visa signatur

CITERA MIG SÅ ATT JAG HITTAR TILLBAKA!
| MSI B550 Gaming Plus | Ryzen 5 5600x | Strix RTX 4080 | 32GB Corsair Vengeance | EVGA Supernova G2 850W | ROG Chakram (liten joystick ju!!) | L33T Muninn Headphones | KeyChron K3 | Predator X34 |

Permalänk
Medlem

Observera att JTextArea.setText() ersätter HELA innehållet i textrutan - det är inte det du vill va?

Permalänk

Problemet löst, kom på hur jag skulle göra! Tack iaf!

Visa signatur

Datorn: i7 3770k, Gigabyte GA-Z77-DS3H, Corsair Vengeance 16gb, Gtx 680, Samsung 830 SSD 256gb, Seagate 1Tb, Fractal design R4, Corsair HX750 750W, DELL U2711.

Studerar: Civilingenjör IT på KTH, började HT 2009 och blir klar sommaren 2014.