{
int unten;
{
int mitte
// hier ist unten und mitte bekannt
}
// hier ist unten bekannt, aber nichts anderes
{
int mitte
// hier ist unten und mitte bekannt. Allerdings ist dieses mitte nicht dasselbe mitte, wie 5 Zeilen weiter oben im Text
{
// hier ist unten, mitte und oben bekannt.
int oben
}
// hier ist wieder unten und mitte bekannt
}
// nur unten ist bekannt
}
// hier läuft gar nix
ServerSocket ss = new ServerSocket(1100);
Socket s = ss.accept();
PrintWriter aus = new PrintWriter(s.getOutputStream(),true);
BufferedReader ein = new BufferedReader(new InputStreamReader(s.getInputStream()));
String eingang = ein.readLine();
String ausgang = "Nachricht vom Server";
JTextField eingabe = new JTextField();
JTextArea chatfenster = new JTextArea();
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
public class Chatserver extends JFrame implements ActionListener, KeyListener {
JTextField eingabe = new JTextField();
JTextArea chatfenster = new JTextArea();
try {
ServerSocket ss = new ServerSocket(1100);
Socket s = ss.accept();
PrintWriter aus = new PrintWriter(s.getOutputStream(),true);
BufferedReader ein = new BufferedReader(new InputStreamReader(s.getInputStream()));
String eingang = ein.readLine();
String ausgang = "Nachricht vom Server";
} catch(IOException){}
public Chatserver() {
super("Chat");
setSize(300, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Look and Feel Stil
try {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
SwingUtilities.updateComponentTreeUI(this);
} catch (Exception e) {}
JPanel pane = new JPanel();
//Layout festlegen
GridBagLayout gridbag= new GridBagLayout();
pane.setLayout(gridbag);
GridBagConstraints constraints = new GridBagConstraints();
//Constraints für JLabel festlegen
JLabel ziel = new JLabel("Senden an:", SwingConstants.RIGHT);
constraints.gridx=0;
constraints.gridy=0;
constraints.gridwidth=1;
constraints.gridheight=1;
constraints.weightx=100;
constraints.weighty=0;
constraints.anchor=GridBagConstraints.EAST;
//Constraints auf Layout anwenden, JLabel hinzufügen
gridbag.setConstraints(ziel, constraints);
pane.add(ziel);
//Constraints für Auswahlfeld festlegen
JComboBox target = new JComboBox();
target.addItem("192.168.0.1");
target.addItem("192.168.0.2");
target.setEditable(true);
constraints.gridx=1;
constraints.gridy=0;
constraints.gridwidth=1;
constraints.gridheight=1;
constraints.weightx=0;
constraints.weighty=0;
constraints.fill=GridBagConstraints.BOTH;
//Constraints auf Layout anwenden, JLabel hinzufügen
gridbag.setConstraints(target, constraints);
pane.add(target);
//Constraints für Chatfenster festlegen
chatfenster.setEditable(false);
chatfenster.setLineWrap(true);
chatfenster.setWrapStyleWord(true);
JScrollPane scrollpanechat = new JScrollPane(chatfenster, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
constraints.gridx=0;
constraints.gridy=1;
constraints.gridwidth=2;
constraints.gridheight=1;
constraints.weightx=100;
constraints.weighty=96;
constraints.fill=GridBagConstraints.BOTH;
//Constraints auf Layout anwenden, JLabel hinzufügen
gridbag.setConstraints(scrollpanechat, constraints);
pane.add(scrollpanechat);
//Constraints für JLabel Ihre Nachricht festlegen
JLabel ihrenachricht = new JLabel("Ihre Nachricht:", SwingConstants.CENTER);
constraints.gridx=0;
constraints.gridy=2;
constraints.gridwidth=2;
constraints.gridheight=1;
constraints.weightx=100;
constraints.weighty=0;
constraints.anchor=GridBagConstraints.CENTER;
//Constraints auf Layout anwenden, JLabel hinzufügen
gridbag.setConstraints(ihrenachricht, constraints);
pane.add(ihrenachricht);
//Constraints für Textfeldeingabe festlegen
eingabe.addKeyListener(this);
constraints.gridx=0;
constraints.gridy=3;
constraints.gridwidth=2;
constraints.gridheight=1;
constraints.weightx=100;
constraints.weighty=0;
constraints.fill=GridBagConstraints.BOTH;
//Constraints auf Layout anwenden, JLabel hinzufügen
gridbag.setConstraints(eingabe, constraints);
pane.add(eingabe);
//Constraints für JButton Absenden festlegen
JButton absenden = new JButton("Absenden");
absenden.addActionListener(this);
constraints.gridx=0;
constraints.gridy=4;
constraints.gridwidth=1;
constraints.gridheight=1;
constraints.weightx=80;
constraints.weighty=2;
constraints.fill=GridBagConstraints.BOTH;
//Constraints auf Layout anwenden, JLabel hinzufügen
gridbag.setConstraints(absenden, constraints);
pane.add(absenden);
//Constraints für JButton Löschen festlegen
JButton loeschen = new JButton("Löschen");
loeschen.addActionListener(this);
constraints.gridx=1;
constraints.gridy=4;
constraints.gridwidth=1;
constraints.gridheight=1;
constraints.weightx=20;
constraints.weighty=2;
constraints.fill=GridBagConstraints.BOTH;
//Constraints auf Layout anwenden, JLabel hinzufügen
gridbag.setConstraints(loeschen, constraints);
pane.add(loeschen);
setContentPane(pane);
//Schriften
Font font = new Font ("Verdana", Font.PLAIN, 10);
Font font2 = new Font (font.getFamily(), Font.BOLD, font.getSize());
Font font3 = new Font ("Courier", Font.PLAIN, 12);
ziel.setFont(font);
target.setFont(font);
ihrenachricht.setFont(font2);
absenden.setFont(font2);
loeschen.setFont(font);
chatfenster.setFont(font3);
eingabe.setFont(font3);
setVisible(true);
// Socket
try {
// in Stream schreiben
while (!eingang.equals("bye")) {
eingabe.setText(eingang);
}
if (eingang.equals("bye")) {
ein.close();
aus.close();
s.close();
}
} catch (IOException e){}
}
public static void main(String[] arguments) {
Chatserver chat = new Chatserver();
// Frame mittig ausrichten
chat.setLocation(
(Toolkit.getDefaultToolkit().getScreenSize().width-chat.getSize().width) / 2,
(Toolkit.getDefaultToolkit().getScreenSize().height-chat.getSize().height) / 2
);
}
public void appendtext(String text) {
if(text.length()!=0){
chatfenster.append(text + "\n");
eingabe.setText("");
}
}
public void actionPerformed(ActionEvent evt){
if (evt.getSource() instanceof JButton) {
String cmd = evt.getActionCommand();
if (cmd.equals("Löschen")) {
eingabe.setText("");
aus.println(ausgang);
}
}
repaint();
if (evt.getSource() instanceof JButton) {
String cmd = evt.getActionCommand();
if (cmd.equals("Absenden")) {
appendtext(eingabe.getText());
}
}
repaint();
}
public void keyPressed (KeyEvent evt) {
}
public void keyReleased (KeyEvent evt) {
int x = evt.getKeyCode();
if (x == KeyEvent.VK_ENTER) {
appendtext(eingabe.getText());
}
repaint();
}
public void keyTyped (KeyEvent evt) {
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
public class Chatserver extends JFrame implements ActionListener, KeyListener {
JTextField eingabe = new JTextField();
JTextArea chatfenster = new JTextArea();
ServerSocket ss;
Socket s;
PrintWriter aus;
BufferedReader ein;
String eingang;
String ausgang;
public Chatserver() {
super("Chat");
setSize(300, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Look and Feel Stil
try {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
SwingUtilities.updateComponentTreeUI(this);
} catch (Exception e) {}
JPanel pane = new JPanel();
//Layout festlegen
GridBagLayout gridbag= new GridBagLayout();
pane.setLayout(gridbag);
GridBagConstraints constraints = new GridBagConstraints();
//Constraints für JLabel festlegen
JLabel ziel = new JLabel("Senden an:", SwingConstants.RIGHT);
constraints.gridx=0;
constraints.gridy=0;
constraints.gridwidth=1;
constraints.gridheight=1;
constraints.weightx=100;
constraints.weighty=0;
constraints.anchor=GridBagConstraints.EAST;
//Constraints auf Layout anwenden, JLabel hinzufügen
gridbag.setConstraints(ziel, constraints);
pane.add(ziel);
//Constraints für Auswahlfeld festlegen
JComboBox target = new JComboBox();
target.addItem("192.168.0.1");
target.addItem("192.168.0.2");
target.setEditable(true);
constraints.gridx=1;
constraints.gridy=0;
constraints.gridwidth=1;
constraints.gridheight=1;
constraints.weightx=0;
constraints.weighty=0;
constraints.fill=GridBagConstraints.BOTH;
//Constraints auf Layout anwenden, JLabel hinzufügen
gridbag.setConstraints(target, constraints);
pane.add(target);
//Constraints für Chatfenster festlegen
chatfenster.setEditable(false);
chatfenster.setLineWrap(true);
chatfenster.setWrapStyleWord(true);
JScrollPane scrollpanechat = new JScrollPane(chatfenster, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
constraints.gridx=0;
constraints.gridy=1;
constraints.gridwidth=2;
constraints.gridheight=1;
constraints.weightx=100;
constraints.weighty=96;
constraints.fill=GridBagConstraints.BOTH;
//Constraints auf Layout anwenden, JLabel hinzufügen
gridbag.setConstraints(scrollpanechat, constraints);
pane.add(scrollpanechat);
//Constraints für JLabel Ihre Nachricht festlegen
JLabel ihrenachricht = new JLabel("Ihre Nachricht:", SwingConstants.CENTER);
constraints.gridx=0;
constraints.gridy=2;
constraints.gridwidth=2;
constraints.gridheight=1;
constraints.weightx=100;
constraints.weighty=0;
constraints.anchor=GridBagConstraints.CENTER;
//Constraints auf Layout anwenden, JLabel hinzufügen
gridbag.setConstraints(ihrenachricht, constraints);
pane.add(ihrenachricht);
//Constraints für Textfeldeingabe festlegen
eingabe.addKeyListener(this);
constraints.gridx=0;
constraints.gridy=3;
constraints.gridwidth=2;
constraints.gridheight=1;
constraints.weightx=100;
constraints.weighty=0;
constraints.fill=GridBagConstraints.BOTH;
//Constraints auf Layout anwenden, JLabel hinzufügen
gridbag.setConstraints(eingabe, constraints);
pane.add(eingabe);
//Constraints für JButton Absenden festlegen
JButton absenden = new JButton("Absenden");
absenden.addActionListener(this);
constraints.gridx=0;
constraints.gridy=4;
constraints.gridwidth=1;
constraints.gridheight=1;
constraints.weightx=80;
constraints.weighty=2;
constraints.fill=GridBagConstraints.BOTH;
//Constraints auf Layout anwenden, JLabel hinzufügen
gridbag.setConstraints(absenden, constraints);
pane.add(absenden);
//Constraints für JButton Löschen festlegen
JButton loeschen = new JButton("Löschen");
loeschen.addActionListener(this);
constraints.gridx=1;
constraints.gridy=4;
constraints.gridwidth=1;
constraints.gridheight=1;
constraints.weightx=20;
constraints.weighty=2;
constraints.fill=GridBagConstraints.BOTH;
//Constraints auf Layout anwenden, JLabel hinzufügen
gridbag.setConstraints(loeschen, constraints);
pane.add(loeschen);
setContentPane(pane);
//Schriften
Font font = new Font ("Verdana", Font.PLAIN, 10);
Font font2 = new Font (font.getFamily(), Font.BOLD, font.getSize());
Font font3 = new Font ("Courier", Font.PLAIN, 12);
ziel.setFont(font);
target.setFont(font);
ihrenachricht.setFont(font2);
absenden.setFont(font2);
loeschen.setFont(font);
chatfenster.setFont(font3);
eingabe.setFont(font3);
setVisible(true);
// Socket
try {
ss = new ServerSocket(1100);
s = ss.accept();
aus = new PrintWriter(s.getOutputStream(),true);
ein = new BufferedReader(new InputStreamReader(s.getInputStream()));
eingang = ein.readLine();
ausgang = "Nachricht vom Server";
// in Stream schreiben
while (!eingang.equals("bye")) {
eingabe.setText(eingang);
}
if (eingang.equals("bye")) {
ein.close();
aus.close();
s.close();
}
} catch (IOException e){}
}
public static void main(String[] arguments) {
Chatserver chat = new Chatserver();
// Frame mittig ausrichten
chat.setLocation(
(Toolkit.getDefaultToolkit().getScreenSize().width-chat.getSize().width) / 2,
(Toolkit.getDefaultToolkit().getScreenSize().height-chat.getSize().height) / 2
);
}
public void appendtext(String text) {
if(text.length()!=0){
chatfenster.append(text + "\n");
eingabe.setText("");
}
}
public void actionPerformed(ActionEvent evt){
if (evt.getSource() instanceof JButton) {
String cmd = evt.getActionCommand();
if (cmd.equals("Löschen")) {
eingabe.setText("");
aus.println(ausgang);
}
}
repaint();
if (evt.getSource() instanceof JButton) {
String cmd = evt.getActionCommand();
if (cmd.equals("Absenden")) {
appendtext(eingabe.getText());
}
}
repaint();
}
public void keyPressed (KeyEvent evt) {
}
public void keyReleased (KeyEvent evt) {
int x = evt.getKeyCode();
if (x == KeyEvent.VK_ENTER) {
appendtext(eingabe.getText());
}
repaint();
}
public void keyTyped (KeyEvent evt) {
}
}