public static void main(String[] args) { Toolkit theKit = aWindow.getToolkit(); // Get the window Toolkit Dimension wndSize = theKit.getScreenSize(); // Get the screen size // Set the position to screen center & size to half screen size aWindow.setBounds( wndSize.width / 4, wndSize.height / 4, // Position wndSize.width / 2, wndSize.height / 2); // Size aWindow.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); GridLayout grid = new GridLayout(5, 2, 30, 20); // Create a layout manager Container content = aWindow.getContentPane(); content.setLayout(grid); EtchedBorder edge = new EtchedBorder(EtchedBorder.RAISED); // Button border // Now add ten Button compenents JButton button; for (int i = 1; i <= 10; i++) { content.add(button = new JButton("Press " + i)); button.setBorder(edge); } aWindow.getContentPane().setBackground(new Color(238, 233, 233)); aWindow.setVisible(true); }
// Action - vad som händer om man klickar på de olika knapparna public void actionPerformed(ActionEvent e) { // Om man trycker på startknappen if (e.getSource() == go) { for (int i = 0; i < 4; i++) { // Skapar spelare och AI, beroende på om textfälten och checkboxarna är ifyllda if (textfields.get(i).getText().length() > 0) { // Om checkboxen är itryckt, skapa ett AI if (boxes.get(i).isSelected()) { try { if (Integer.parseInt(intfields.get(i).getText()) >= 0) { players.add( new AI( textfields.get(i).getText(), Integer.parseInt(intfields.get(i).getText()))); } // Om intellegensen är angivet negativt använder vi ett minne av storleken 0. else { players.add(new AI(textfields.get(i).getText(), 0)); } } // Om intellegensen inte är angiven i siffror, använd standardintellegensen på 20 korts // minne catch (NumberFormatException ex) { players.add(new AI(textfields.get(i).getText(), 20)); } } // Om spelaren inte är ett AI, lägg till en vanlig spelare else { players.add(new Player(textfields.get(i).getText())); } } } // Stänger ner menyn och startar spelet, skickar med spelarinfon if (players.size() >= 1) { this.dispose(); f.dispose(); new Memory(players); } } // Om man trycker på hjälpknappen visas en ruta med lite instruktioner if (e.getSource() == help) { f.setVisible(true); f.setBounds(300, 200, 500, 200); f.setResizable(false); String text = "<html>Om inställningar:<br>Skriv in spelarnas namn för att lägga till dem.<br>" + "Om AI önskas: Klicka i rutan och ange intellegens. (Antal kort AIn kommer ihåg.)<br>" + "Tryck på 'Starta' för att starta spelet.<br><br>" + "Hur man spelar:<br>Spelaren vars tur det är får sitt namn markerat med grön färg längst ner.<br>" + "För att göra ditt drag, tryck på korten. Du kan inte välja samma kort två gånger<br><br>" + "Det är ett vanligt memory, lets go!</html>"; f.add(new JLabel(text), BorderLayout.NORTH); } for (int i = 0; i < boxes.size(); i++) { // Om checkboxarna är ikryssade lägger den till ett eget namn för AIn som ska skapas och visar // rutan för intellegensbestämning if (boxes.get(i).isSelected()) { textfields.get(i).setText("AI " + (i + 1)); textfields.get(i).setEnabled(false); intfields.get(i).setText("" + 20); intfields.get(i).setVisible(true); } // Om checkboxarna blir urklickade igen, nollställ textfälten, och ta bort rutan för // intellegensbestämning else if (!boxes.get(i).isSelected()) { if (textfields.get(i).getText().indexOf("AI") != -1) { textfields.get(i).setText(""); intfields.get(i).setVisible(false); } textfields.get(i).setEnabled(true); } } }
public void launchChess() { mainWindow = new JFrame("网络黑白棋 作者:张炀"); jpWest = new JPanel(); jpEast = new JPanel(); jpNorth = new JPanel(); jpSouth = new JPanel(); jpCenter = new JPanel(); turnLabel = new JLabel(); blackNumberLabel = new JLabel("黑棋:\n" + black + " "); whiteNumberLabel = new JLabel("白棋:\n" + white + " "); timeLabel = new JLabel("时间: " + time + " s"); noticeLabel = new JLabel(); noticeLabel = new JLabel("请选择:"); numberPane = new JPanel(); readyPane = new JPanel(); jt1 = new JTextField(18); // 发送信息框 jt2 = new JTextArea(3, 30); // 显示信息框 js = new JScrollPane(jt2); jt2.setLineWrap(true); jt2.setEditable(false); // jt1.setLineWrap(true); send = new JButton("发送"); cancel = new JButton("取消"); regret = new JButton("悔棋"); submit = new JButton("退出"); begin = new JButton("开始"); save = new JButton("存盘"); save.setEnabled(true); begin.setEnabled(true); fighter = new JRadioButton("下棋"); audience = new JRadioButton("观看"); group = new ButtonGroup(); group.add(audience); group.add(fighter); group.add(AIPlayer); submit.addActionListener(this); begin.addActionListener(this); save.addActionListener(this); send.addActionListener(this); cancel.addActionListener(this); regret.addActionListener(this); fighter.addActionListener(this); audience.addActionListener(this); jpNorth.setLayout(new BorderLayout()); jpNorth.add(turnLabel, BorderLayout.NORTH); jpNorth.add(jpCenter, BorderLayout.CENTER); jpSouth.add(js); jpSouth.add(jt1); jpSouth.add(send); jpSouth.add(cancel); jpEast.setLayout(new GridLayout(3, 1)); submit.setBackground(new Color(130, 251, 241)); panel x = new panel(); jpEast.add(x); jpEast.add(numberPane); jpEast.add(readyPane); numberPane.add(blackNumberLabel); numberPane.add(whiteNumberLabel); numberPane.add(timeLabel); numberPane.add(submit); numberPane.add(begin); numberPane.add(save); numberPane.add(regret); readyPane.add(noticeLabel); readyPane.add(fighter); readyPane.add(audience); // readyPane.add(save); // readyPane.add(regret); jpCenter.setSize(400, 400); jmb = new JMenuBar(); document = new JMenu("游戏 "); edit = new JMenu("设置 "); insert = new JMenu("棋盘 "); help = new JMenu("帮助 "); jmb.add(document); jmb.add(edit); jmb.add(insert); jmb.add(help); // mainWindow.setJMenuBar(jmb); mainWindow.setBounds(80, 80, 600, 600); mainWindow.setResizable(false); jsLeft = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true, jpNorth, jpSouth); jsBase = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, jsLeft, jpEast); mainWindow.add(jsBase); mainWindow.setVisible(true); mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jsBase.setDividerLocation(0.7); jsLeft.setDividerLocation(0.78); jpCenter.setLayout(new GridLayout(8, 8, 0, 0)); ImageIcon key = new ImageIcon("chess1.jpg"); for (int i = 0; i < cell.length; i++) for (int j = 0; j < cell.length; j++) { cell[i][j] = new ChessBoard(i, j); cell[i][j].addMouseListener(this); jpCenter.add(cell[i][j]); } cell[3][3].state = cell[4][4].state = '黑'; cell[4][3].state = cell[3][4].state = '白'; cell[3][3].taken = cell[4][4].taken = true; cell[4][3].taken = cell[3][4].taken = true; RememberState(); new Thread(new TurnLabel(this)).start(); file = new File("D:/" + myRole); try { fout = new FileOutputStream(file); out = new ObjectOutputStream(fout); } catch (IOException e1) { e1.printStackTrace(); } Connect(); try { out99 = new ObjectOutputStream(socket99.getOutputStream()); in99 = new ObjectInputStream(socket99.getInputStream()); out66 = new ObjectOutputStream(socket66.getOutputStream()); in66 = new ObjectInputStream(socket66.getInputStream()); out88 = new DataOutputStream(socket88.getOutputStream()); } catch (IOException e) { e.printStackTrace(); } new Thread(new Client9999(this)).start(); new Thread(new Client6666(this)).start(); }