I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
public class KlientGUI extends JFrame implements Runnable { private static final int Opdateringshastighed = 1000; // Hvor tit der skal hentes data (i ms) private String host = ""; private static String handle;
/** * Denne metode returnere spillerens navn * @return Spillerens navn **/ public String getNavn() { return handle; }
/** * Klassens contructoren som tager spilleres navn som parametre * @param handle Constructoren tager et spillernavn som parameter **/ public KlientGUI(String handle, String host) { exceptionHandler = new ExceptionHandler();
// Felt med de tilfældige bogstaver bogstavOutputFelt = new JTextField(); bogstavOutputFelt.setText(""); bogstavOutputFelt.setFont(new Font("Arial", Font.BOLD, 16)); bogstavOutputFelt.setEditable (false); bogstavOutputFelt.setBackground(new Color(228,240,250)); bogstavOutputFelt.setBorder(BorderFactory.createLineBorder(Color.black)); bogstavOutputFelt.setHorizontalAlignment(JTextField.CENTER); bogstavOutputFelt.setToolTipText("Tilgængelige bogstaver til at danne ord ud fra...."); bogstavOutputFelt.setBounds(10,100,770,40);
// Felt til indtastning af ord
FeltLytter feltLytter =new FeltLytter();
ordInputFelt = new JTextField(); ordInputFelt.setEditable (true); ordInputFelt.setBackground(new Color(228,240,250)); ordInputFelt.setBorder(BorderFactory.createLineBorder(Color.black)); ordInputFelt.setFont(new Font("Arial", Font.BOLD, 16) ); ordInputFelt.setToolTipText("Indtast dit ord her...."); ordInputFelt.setBounds(10,175,600,30); ordInputFelt.addActionListener (feltLytter);
// Felt til visning af tiden tidsOutputFelt = new JTextField(); tidsOutputFelt.setText(""); tidsOutputFelt.setFont(new Font("Arial", Font.BOLD, 14)); tidsOutputFelt.setEditable (false); tidsOutputFelt.setBackground(new Color(228,240,250)); tidsOutputFelt.setBorder(BorderFactory.createLineBorder(Color.black)); tidsOutputFelt.setHorizontalAlignment(JTextField.CENTER); tidsOutputFelt.setToolTipText("Spiltiden...."); tidsOutputFelt.setBounds(620,370,160,30);
// JTextFields SLUT!!
// JTextArea START!!
// Liste med dannede ord ordListe = new JTextArea(); ordListe.setEditable (false); ordListe.setBackground(new Color(228,240,250)); JScrollPane ordListeScrollPane = new JScrollPane(ordListe); ordListeScrollPane.setBorder(BorderFactory.createLineBorder(Color.black)); ordListe.setToolTipText("Liste med dannede ord...."); ordListeScrollPane.setBounds(10,240,600,300);
// Liste med spillere og point spillerListe = new JTextArea(); spillerListe.setEditable (false); spillerListe.setBackground(new Color(228,240,250)); spillerListe.setFont(new Font("Arial", Font.BOLD, 14) ); JScrollPane spillerListeScrollPane = new JScrollPane(spillerListe); spillerListeScrollPane.setBorder(BorderFactory.createLineBorder(Color.black)); spillerListe.setToolTipText("Liste med spillere og deres point...."); spillerListeScrollPane.setBounds(620,175,160,160);
// JTextArea Slut!!
// JLabel Start!!
// Label til "QuickWord" (Overskrift) overskriftLabel = new JLabel(); overskriftLabel.setText("QuickWord"); overskriftLabel.setFont(new Font("Arial", Font.BOLD, 42)); overskriftLabel.setForeground(new Color(255,186,0)); overskriftLabel.setBounds(10,10,300,50);
HandlingsLytter knapLytter = new HandlingsLytter();
startSpilKnap = new JButton(); startSpilKnap.setText("Start Spillet"); startSpilKnap.setFont(new Font("Arial", Font.PLAIN, 14)); startSpilKnap.setBorder(BorderFactory.createLineBorder(Color.black)); startSpilKnap.setBounds(620,420,160,30); startSpilKnap.setToolTipText("Tryk her for at starte spillet...."); startSpilKnap.setMnemonic('S'); startSpilKnap.addActionListener(knapLytter);
// Knap til at forlade spillet forladSpilKnap = new JButton(); forladSpilKnap.setText("Forlad Spillet"); forladSpilKnap.setFont(new Font("Arial", Font.PLAIN, 14)); forladSpilKnap.setBorder(BorderFactory.createLineBorder(Color.black)); forladSpilKnap.setBounds(620,470,160,30); forladSpilKnap.setToolTipText("Tryk her for at forlade spillet...."); forladSpilKnap.setMnemonic('F'); forladSpilKnap.addActionListener(knapLytter);
} } // end of WindowAdapter ); setVisible (true); }
/** * Dette er start-metoden til at starte tråden **/ public synchronized void start() { try { if (updater == null) { tid = rmiKlient.getSpilTid(); updater = new Thread (this); updater.start (); } } catch(RemoteException ex) { exceptionHandler.fejl(ex); }
}
/** * Dette er stop-metoden til at lukke tråden **/ public synchronized void stop() {
private class FeltLytter implements ActionListener { public void actionPerformed (ActionEvent ev) { try { if (rmiKlient != null) { rmiKlient.tjekOrd(ev.getActionCommand().toLowerCase(),handle); ordInputFelt.setText (""); } } catch(RemoteException ex) { exceptionHandler.fejl(ex); }
} }
/** * Dette er metode til at centrerer GUI´en på skærmen * @param vindue Tager et vindue af typen JFrame som parameter **/ public void centrer(JFrame vindue) { Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); int x=(int)((d.getWidth()-vindue.getWidth())/2); int y=(int)((d.getHeight()-vindue.getHeight())/2); vindue.setLocation(x,y); }
/** * Dette er metode lave mellemrum i en streng * @param streng Tager en String som parameter * @return Strengen med mellemrum mellem hver bogstav **/ public String lavMellemrum(String streng) { String mStreng = "";
for(int i = 0; i < streng.length();i++) mStreng += " " + streng.charAt(i);
Sætter bare tråden til at sleepe et 1 sek førdt så kommer den ikk..
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.