mirror of
https://github.com/moodle/moodle.git
synced 2025-01-22 08:11:26 +01:00
1515a89e2d
an inspiration. Works OK already on most newish browsers .. see mod/chat/README.txt for details.
178 lines
4.5 KiB
Java
178 lines
4.5 KiB
Java
import java.awt.*;
|
|
import java.awt.event.*;
|
|
|
|
public class MainFrameGui
|
|
extends Frame
|
|
{
|
|
public static TextArea messages;
|
|
public static TextField eingabe;
|
|
public static List userliste;
|
|
public static Checkbox cb;
|
|
public static Button hilfebutton;
|
|
public static GridBagConstraints makegbc;
|
|
public static TextDialog hilfedialog;
|
|
public static MenuBar menu;
|
|
|
|
public MainFrameGui()
|
|
{
|
|
super ("ARSC Really Simple Chat");
|
|
setBackground(Color.lightGray);
|
|
addWindowListener(new WindowClosingAdapter(true));
|
|
|
|
//Menü
|
|
MenuBar menu = new MenuBar();
|
|
Menu menuConnection = new Menu("Connection");
|
|
menuConnection.add("Connect to server");
|
|
menuConnection.add("Disconnect from server");
|
|
menuConnection.add("Quit");
|
|
Menu menuConfiguration = new Menu("Configuration");
|
|
Menu menuHelp = new Menu("Help");
|
|
MenuItem mi = new MenuItem("Show commands");
|
|
mi.addActionListener(new hilfebuttonListener());
|
|
menuHelp.add(mi);
|
|
menuHelp.add("About...");
|
|
menu.add(menuConnection);
|
|
menu.add(menuConfiguration);
|
|
menu.add(menuHelp);
|
|
|
|
setMenuBar(menu);
|
|
|
|
//Layout setzen und Komponenten hinzufügen
|
|
GridBagLayout gbl = new GridBagLayout();
|
|
GridBagConstraints gbc;
|
|
setLayout(gbl);
|
|
|
|
//TextArea hinzufügen
|
|
messages = new TextArea("", 20, 20, TextArea.SCROLLBARS_VERTICAL_ONLY);
|
|
gbc = makegbc(0, 0, 2, 2);
|
|
gbc.weightx = 100;
|
|
gbc.weighty = 100;
|
|
gbc.fill = GridBagConstraints.BOTH;
|
|
gbl.setConstraints(messages, gbc);
|
|
add(messages);
|
|
|
|
//Userliste
|
|
userliste = new List();
|
|
userliste.add("pgod");
|
|
userliste.add("HanSolo");
|
|
userliste.add("dArUdE");
|
|
gbc = makegbc(2, 0, 2, 2);
|
|
gbc.fill = GridBagConstraints.BOTH;
|
|
gbl.setConstraints(userliste, gbc);
|
|
userliste.addActionListener(new userlisteListener());
|
|
add(userliste);
|
|
|
|
//Eingabefeld
|
|
eingabe = new TextField();
|
|
gbc = makegbc(0, 2, 1, 1);
|
|
gbc.weightx = 100;
|
|
gbc.fill = GridBagConstraints.HORIZONTAL;
|
|
gbc.anchor = GridBagConstraints.SOUTH;
|
|
gbl.setConstraints(eingabe, gbc);
|
|
eingabe.addActionListener(new eingabeListener());
|
|
add(eingabe);
|
|
|
|
//Checkbox
|
|
cb = new Checkbox("Scrolling");
|
|
cb.setState(true);
|
|
gbc = makegbc(1, 2, 1, 1);
|
|
gbc.fill = GridBagConstraints.NONE;
|
|
gbc.anchor = GridBagConstraints.SOUTH;
|
|
gbl.setConstraints(cb, gbc);
|
|
add(cb);
|
|
|
|
//Hilfebutton
|
|
hilfebutton = new Button("Help");
|
|
gbc = makegbc(2, 2, 1, 1);
|
|
gbc.fill = GridBagConstraints.NONE;
|
|
gbc.anchor = GridBagConstraints.WEST;
|
|
gbl.setConstraints(hilfebutton, gbc);
|
|
hilfebutton.addActionListener(new hilfebuttonListener());
|
|
add(hilfebutton);
|
|
//Gib ihm
|
|
pack();
|
|
hilfedialog = new TextDialog(this, "Hilfe", "Hilfe\nLala\nLulu...", "Schliessen", false, 200, 400);
|
|
}
|
|
|
|
//Die Listener
|
|
public class eingabeListener
|
|
implements ActionListener
|
|
{
|
|
public void actionPerformed(ActionEvent event)
|
|
{
|
|
System.out.println("Event erhalten");
|
|
TextField source = (TextField)event.getSource();
|
|
messages.append("\n" + source.getText());
|
|
source.selectAll();
|
|
}
|
|
}
|
|
|
|
public class userlisteListener
|
|
implements ActionListener
|
|
{
|
|
public void actionPerformed(ActionEvent event)
|
|
{
|
|
System.out.println("userliste Event erhalten");
|
|
List source = (List)event.getSource();
|
|
eingabe.setText("/msg " + source.getSelectedItem() + " ");
|
|
eingabe.setCaretPosition(99);
|
|
eingabe.requestFocus();
|
|
}
|
|
}
|
|
|
|
public class hilfebuttonListener
|
|
implements ActionListener
|
|
{
|
|
public void actionPerformed(ActionEvent event)
|
|
{
|
|
System.out.println("hilfebutton Event erhalten");
|
|
if(getToolkit().getScreenSize().width - (getBounds().x + getBounds().width) >= hilfedialog.getSize().width)
|
|
{
|
|
hilfedialog.setLocation(getBounds().x + getBounds().width, getBounds().y);
|
|
}
|
|
else
|
|
{
|
|
hilfedialog.setLocation(getToolkit().getScreenSize().width - hilfedialog.getSize().width, getBounds().y);
|
|
}
|
|
hilfedialog.setVisible(true);
|
|
}
|
|
}
|
|
|
|
public class WindowClosingAdapter
|
|
extends WindowAdapter
|
|
{
|
|
private boolean exitSystem;
|
|
|
|
public WindowClosingAdapter(boolean exitSystem)
|
|
{
|
|
this.exitSystem = exitSystem;
|
|
}
|
|
|
|
public WindowClosingAdapter()
|
|
{
|
|
this(true);
|
|
}
|
|
|
|
public void windowClosing(WindowEvent event)
|
|
{
|
|
event.getWindow().setVisible(false);
|
|
event.getWindow().dispose();
|
|
if (exitSystem)
|
|
{
|
|
System.exit(0);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static GridBagConstraints makegbc(int x, int y, int width, int height)
|
|
{
|
|
GridBagConstraints gbc = new GridBagConstraints();
|
|
gbc.gridx = x;
|
|
gbc.gridy = y;
|
|
gbc.gridwidth = width;
|
|
gbc.gridheight = height;
|
|
gbc.insets = new Insets(1, 1, 1, 1);
|
|
return gbc;
|
|
}
|
|
}
|