Moin Leute,
ich arbeite gerade an einem Programm für die Schule, mit dem ich erst Auswähle ob ich Client oder Server bin und dann entweder als Client eine Zufallszahl an einen bestimmten Rechner schicke, der dann als Server agiert und die Zufallszahl + Zeitstempel + IP des Senders ausgeben soll. Das Grundprogramm funktioniert auch, nun wollte ich halt eine GUI aufbauen und habe das soweit eigentlich fertig. Doch bekomm ich ständig irgendwelche Fehlermeldungen mit Exceptions, die mich irgendwie nur verwirren.
Hier mal mein kompletter Code, leider etwas unübersichtlich:
Und hier die dazugehörigen Fehlermeldungen:
Ich hoffe ihr könnt mir dabei irgendwie behilflich sein, denn ich verzweifle grad echt
Vielen Dank schonmal
ich arbeite gerade an einem Programm für die Schule, mit dem ich erst Auswähle ob ich Client oder Server bin und dann entweder als Client eine Zufallszahl an einen bestimmten Rechner schicke, der dann als Server agiert und die Zufallszahl + Zeitstempel + IP des Senders ausgeben soll. Das Grundprogramm funktioniert auch, nun wollte ich halt eine GUI aufbauen und habe das soweit eigentlich fertig. Doch bekomm ich ständig irgendwelche Fehlermeldungen mit Exceptions, die mich irgendwie nur verwirren.
Hier mal mein kompletter Code, leider etwas unübersichtlich:
Code:
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.*;
/**
*
* Beschreibung
*
* @version 1.0 vom 08.09.2012
*/
public class GUI extends Frame {
// Anfang Attribute
private static int timeOut = 2000;
private static int bufsize = 600;
boolean state = true;
MenuBar menuLeiste = new MenuBar();
Menu menuDatei = new Menu("Datei");
Menu menuAuswahl = new Menu("Auswahl");
private Label label1 = new Label();
private Label label2 = new Label();
private Label label3 = new Label();
private TextArea textArea1 = new TextArea("", 1, 1, TextArea.SCROLLBARS_NONE);
private TextField textField1 = new TextField();
private TextField textField2 = new TextField();
private Label label4 = new Label();
private Button sendClient = new Button();
private Button stopServer = new Button();
private Button startServer = new Button();
// Ende Attribute
public GUI(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { dispose(); }
});
int frameWidth = 300;
int frameHeight = 379;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
setResizable(false);
Panel cp = new Panel(null);
add(cp);
// Anfang Komponenten
label1.setBounds(16, 64, 46, 26);
label1.setText("Host:");
label1.setFont(new Font("Arial", Font.PLAIN, 18));
cp.add(label1);
label2.setBounds(16, 104, 46, 25);
label2.setText("Port:");
label2.setFont(new Font("Arial", Font.PLAIN, 18));
label2.setVisible(false);
cp.add(label2);
label3.setBounds(80, 8, 146, 33);
label3.setText("Network V1.0");
label3.setFont(new Font("Arial", Font.PLAIN, 24));
cp.add(label3);
textArea1.setBounds(16, 176, 256, 108);
textArea1.setEditable(false);
textArea1.setEnabled(true);
cp.add(textArea1);
textField1.setBounds(72, 64, 126, 28);
cp.add(textField1);
textField2.setBounds(72, 104, 54, 28);
textField2.setVisible(false);
cp.add(textField2);
label4.setBounds(16, 144, 46, 25);
label4.setText("Data:");
label4.setFont(new Font("Arial", Font.PLAIN, 18));
cp.add(label4);
sendClient.setBounds(24, 304, 75, 25);
sendClient.setLabel("<< Send >>");
sendClient.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
sendClient_ActionPerformed(evt);
}
});
cp.add(sendClient);
stopServer.setBounds(136, 304, 75, 25);
stopServer.setLabel("<< Stop >>");
stopServer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt){
stopServer_ActionPerformed(evt);
}
});
cp.add(stopServer);
startServer.setBounds(24, 304, 75, 25);
startServer.setLabel("<< Start >>");
startServer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
startServer_ActionPerformed(evt);
}
});
cp.add(startServer);
// Ende Komponenten
setVisible(true);
menue();
}
// Anfang Methoden
public void menue(){
// Menü zusammenbauen
MenuItem beenden = new MenuItem("Programm Beenden");
beenden.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
MenuItem client = new MenuItem("Client");
client.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
textField1.setVisible(true);
sendClient.setVisible(true);
label1.setVisible(true);
textField2.setVisible(true);
label2.setVisible(true);
startServer.setVisible(false);
stopServer.setVisible(false);
textArea1.setVisible(false);
label4.setVisible(false);
}
});
MenuItem server = new MenuItem("Server");
server.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
textField1.setVisible(false);
sendClient.setVisible(false);
label1.setVisible(false);
startServer.setVisible(true);
stopServer.setVisible(true);
textArea1.setVisible(true);
label4.setVisible(true);
textField2.setVisible(true);
label2.setVisible(true);
}
});
menuDatei.add(beenden);
menuAuswahl.add(client);
menuAuswahl.add(server);
// Menüs zur Menüleiste hinzufügen
menuLeiste.add(menuDatei);
menuLeiste.add(menuAuswahl);
// Menüleiste zum Fenster hinzufügen
setMenuBar(menuLeiste);
}
public void server() throws Exception {
while(state == true){
int port = Integer.parseInt(textField2.getText());
DatagramSocket udpSocket = new DatagramSocket(port);
DatagramPacket packetIn = new DatagramPacket(new byte [bufsize], bufsize);
DatagramPacket packetOut = new DatagramPacket(new byte [bufsize], bufsize);
while(true){
udpSocket.receive(packetIn);
textArea1.setText("" + packetIn.getAddress());
textArea1.setText(new String(packetIn.getData()));
}
}
}
public void client(int daten){
try{
int port = Integer.parseInt(textField2.getText());
String host = textField1.getText();
Calendar c = Calendar.getInstance();
String Zeit = c.getTime().toGMTString();
String Nachricht = "";
byte[] data = new byte[12];
Nachricht = daten + " " + Zeit;
data = Nachricht.getBytes();
DatagramSocket udpSocket = new DatagramSocket();
udpSocket.setSoTimeout(timeOut);
InetAddress addr = InetAddress.getByName(host);
DatagramPacket packetOut = new DatagramPacket(data,data.length,addr,port);
udpSocket.send(packetOut);
System.out.println(packetOut);
udpSocket.close();
} // end of try
catch(Exception e) {
System.err.println("Timeout: " + e.getMessage());
}
}
public int randomNumber(){
final int MAX = 100;
int daten = 0;
for (int i = 0; i < MAX; i++){
daten = (int)Math.floor((Math.random() * 99) + 1);}
return daten;
}
public void sendClient_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
client(randomNumber());
}
public void stopServer_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
state = false;
server();
}
public void startServer_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
state = true;
server();
}
// Ende Methoden
public static void main(String[] args) {
new GUI("GUI");
}
}
Und hier die dazugehörigen Fehlermeldungen:
Code:
GUI.java:227:11: error: unreported exception Exception; must be caught or declared to be thrown
server();
^
GUI.java:233:11: error: unreported exception Exception; must be caught or declared to be thrown
server();
Ich hoffe ihr könnt mir dabei irgendwie behilflich sein, denn ich verzweifle grad echt

Vielen Dank schonmal
Zuletzt bearbeitet: