⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tictactoedialogpanel.java

📁 jxta官方例程
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                gameStateLabel = new JLabel ("gameStateLabel");        panel.add (gameStateLabel,"1,0,l,c");                playersTurnLabel = new JLabel ("Players Turn");        panel.add (playersTurnLabel,"2,0,r,c");        playersTurnLabel.setFont (new Font ("Arial", Font.BOLD, 12));        playersTurnLabel.setForeground (Color.BLACK);                return panel;            }        private JPanel buildUpperInfoPanel () {                double sizes[][] = {{TableLayout.FILL,TableLayout.FILL},        {TableLayout.PREFERRED}};        TableLayout tbl = new TableLayout (sizes);        JPanel panel = new JPanel (tbl);        panel.setBackground (Color.white);                localPlayerNameLabel = new JLabel (this.localPlayerName);        panel.add (localPlayerNameLabel, "0,0,l,c");        localPlayerNameLabel.setFont (new Font ("Arial", Font.BOLD, 18));        localPlayerNameLabel.setForeground (Color.BLUE);                remotePlayerNameLabel = new JLabel ("remotePlayer");        panel.add (remotePlayerNameLabel, "1,0,r,c");        remotePlayerNameLabel.setFont (new Font ("Arial", Font.BOLD, 18));        remotePlayerNameLabel.setForeground (Color.BLUE);                        return panel;    }        private JPanel buildLowerInfoPanel () {                double sizes[][] = {{TableLayout.FILL,TableLayout.FILL,TableLayout.FILL},        {TableLayout.FILL}};        TableLayout tbl = new TableLayout (sizes);        JPanel panel = new JPanel (tbl);        panel.setBackground (Color.white);                remotePlayerIconLabel = new JLabel ();        panel.add (remotePlayerIconLabel,"0,0,l,c");        remotePlayerIconLabel.setIcon (this.iconBlank);                JPanel statsPanel = buildGameStatsPanel ();        panel.add (statsPanel,"1,0,c,c");        statsPanel.setBorder (null);                localPlayerIconLabel = new JLabel ();        panel.add (localPlayerIconLabel,"2,0,r,c");        localPlayerIconLabel.setIcon (this.iconBlank);                return panel;    }            private JPanel buildGameInfoPanel () {                double sizes[][] = {{TableLayout.FILL},        {TableLayout.PREFERRED,TableLayout.FILL}};        TableLayout tbl = new TableLayout (sizes);        JPanel panel = new JPanel (tbl);        panel.setBackground (Color.white);                JSeparator separator = new JSeparator (SwingConstants.HORIZONTAL);        panel.add (separator,"0,0,2,0");                panel.add (this.buildUpperInfoPanel (),"0,0");                panel.add (this.buildLowerInfoPanel (),"0,1");                return panel;    }        private JPanel buildGameStatsPanel () {                double sizes[][] = {{TableLayout.FILL},        {TableLayout.PREFERRED,TableLayout.PREFERRED}};        TableLayout tbl = new TableLayout (sizes);        JPanel panel = new JPanel (tbl);        panel.setBackground (Color.white);        panel.setBorder (null);                double sizesLabel[][] = {{TableLayout.FILL},        {TableLayout.PREFERRED,TableLayout.FILL}};        TableLayout tblLabel = new TableLayout (sizesLabel);        JPanel panelLabel = new JPanel (tblLabel);        panel.add (panelLabel,"0,0,c,c");        panelLabel.setBackground (Color.white);        panelLabel.setBorder (null);                double sizesData[][] = {{TableLayout.FILL,TableLayout.PREFERRED,TableLayout.FILL},        {TableLayout.PREFERRED,TableLayout.PREFERRED}};        TableLayout tblData = new TableLayout (sizesData);        JPanel panelData = new JPanel (tblData);        panel.add (panelData,"0,1");        panelData.setBackground (Color.white);        panelData.setBorder (null);                        //winsLabel        JLabel winsLabel = new JLabel ("WINS");        panelLabel.add (winsLabel,"0,0,c,c");        winsLabel.setFont (new Font ("Arial", Font.PLAIN, 18));        winsLabel.setForeground (Color.BLACK);                        //separator        JSeparator separatorH = new JSeparator (SwingConstants.HORIZONTAL);        panelLabel.add (separatorH,"0,1");                //localPlayerWinsLabel        localPlayerWinsLabel = new JLabel ("0");        panelData.add (localPlayerWinsLabel,"0,0,l,c");        localPlayerWinsLabel.setFont (new Font ("Arial", Font.BOLD, 26));        localPlayerWinsLabel.setForeground (Color.BLACK);                        //separator        JSeparator separatorV = new JSeparator (SwingConstants.VERTICAL);        panelData.add (separatorV,"1,0,1,0");                //remotePlayerWinsLabel        remotePlayerWinsLabel = new JLabel ("0");        panelData.add (remotePlayerWinsLabel,"2,0,r,c");        remotePlayerWinsLabel.setFont (new Font ("Arial", Font.BOLD, 26));        remotePlayerWinsLabel.setForeground (Color.BLACK);                                return panel;    }            private JPanel buildGameGridPanel () {                MouseAdapter gridMouseLisetner = new MouseAdapter () {            public void mouseClicked (MouseEvent e) {                if ( e.getSource () instanceof TicTacToeGridBox) {                                        if( getGameControl ().getPlayersTurn () == TicTacToeGameControl.LOCAL_PLAYER) {                        if (LOG.isEnabledFor (Level.INFO)) {                            LOG.info ("BoxClicked : ");                        }                        TicTacToeGridBox box = (TicTacToeGridBox) e.getSource ();                        /** if user hasn't already played this box */                        if (box.isAvailable ()) {                                                        box.makeMove (TicTacToeGameControl.LOCAL_PLAYER);                            box.setAvailable (false);                            notifyMoveListeners (box);                                                    }                    }else {                        setTempStatus ("Not Your Move!");                    }                }                            }        };                double b = 5;        double sizes[][] = {{b,TableLayout.PREFERRED,b,TableLayout.PREFERRED,b,TableLayout.PREFERRED,b},        {b,TableLayout.PREFERRED,b,TableLayout.PREFERRED,b,TableLayout.PREFERRED,b}};                TableLayout tbl = new TableLayout (sizes);        JPanel gridPanel = new JPanel (tbl);                String rowId = null;        String colId = null;                gridPanel.setOpaque (false);        gridPanel.setBorder (null);                                for(int r = 0; r < this.gridRows; r++) {                        if (r == 0) rowId = "A";            if( r == 1) rowId = "B";            if( r == 2) rowId = "C";                        for(int c = 0; c < this.gridColumns ; c++) {                colId = String.valueOf (c);                                TicTacToeGridBox box = new TicTacToeGridBox (rowId + colId, this);                                box.addMouseListener (gridMouseLisetner);                if (LOG.isEnabledFor (Level.INFO)) {                    LOG.info ("grid ["+r+"] ["+c+"]");                }                grid[r][c] = box;                                //LOG.info("these are" + r + "," + c );                gridPanel.add (box,this.coordinatesToString (r,c));            }        }                        return gridPanel;    }        private String coordinatesToString (int r, int c) {                String suffix = null;        if(r == 0) {                        r = 1;                    }else if(r == 1) {                        r = 3;                    }else if(r == 2) {                        r = 5;                    }        if(c == 0) {                        c = 1;            suffix = new String ("l,c");                    }else if(c == 1) {                        c = 3;            suffix = new String ("c,c");                    }else if(c == 2) {                        c = 5;            suffix = new String ("r,c");                    }                String rString = String.valueOf (r);        String cString = String.valueOf (c);        LOG.info ("String coords " + rString + "," + cString);        return rString + "," + cString + "," + suffix;            }        private JPanel buildGamePanel () {                double sizes[][] = {{TableLayout.FILL},        {TableLayout.PREFERRED,TableLayout.PREFERRED,TableLayout.PREFERRED,TableLayout.PREFERRED}};                TableLayout tbl = new TableLayout (sizes);        JPanel panel = new JPanel (tbl);                panel.setBorder (null);        panel.setBackground (Color.WHITE);                panel.add (buildGameStatusPanel (),"0,0,c,c");                panel.add (buildGameGridPanel (),"0,1,c,c");                panel.add (buildGameInfoPanel (), "0,2,c,c");                closeButton = new JButton ("Close");        panel.add (closeButton,"0,3,r,c");        closeButton.addActionListener (new ActionListener () {            public void actionPerformed (ActionEvent ae) {                destruct ();            }        });                return panel;    }                        protected void showPanel (final String panelName) {                                EventQueue.invokeLater (new Runnable () {                        public void run () {                                cardLayout.show (deckPanel, panelName);                            }        });    }        protected void showConfigPanel (final String panelName) {                                EventQueue.invokeLater (new Runnable () {                        public void run () {                                configCardLayout.show (configDeckPanel, panelName);                            }        });    }        private JPanel buildConfigChooseIconPanel () {                        double sizes[][] = {{TableLayout.PREFERRED,TableLayout.PREFERRED,TableLayout.PREFERRED},        {TableLayout.PREFERRED,TableLayout.PREFERRED,TableLayout.PREFERRED}};                TableLayout tbl = new TableLayout (sizes);        JPanel panel = new JPanel (tbl);        panel.setBorder (new TitledBorder ("Choose Icon"));                remoteIconLabel = new JLabel (getIconBlank ());        panel.add (remoteIconLabel,"0,0");        remoteIconLabel.setBorder (new TitledBorder ("Remote Player"));                currentIconLabel = new JLabel (getIconBlank ());        panel.add (currentIconLabel,"1,0");        currentIconLabel.setBorder (new TitledBorder ("Local Player"));                JLabel labelX = new JLabel (getIconX ());        panel.add (labelX,"0,1");        labelX.addMouseListener (new MouseAdapter () {            public void mouseClicked (MouseEvent e) {                if(getRemotePlayerIconType () != ICON_TYPE_X) {                                    setLocalPlayerIconType (ICON_TYPE_X);                setLocalPlayerIcon (getIconX ());                currentIconLabel.setIcon (getIconX ());                }else{                    updateMessageLabel ("Remote peer chose that icon.");                }            }        });                JLabel labelO = new JLabel (getIconO ());        panel.add (labelO,"1,1");        labelO.addMouseListener (new MouseAdapter () {            public void mouseClicked (MouseEvent e) {                if(getRemotePlayerIconType () != ICON_TYPE_O) {                setLocalPlayerIcon (getIconO ());                setLocalPlayerIconType (ICON_TYPE_O);                currentIconLabel.setIcon (getIconO ());                }else{                    updateMessageLabel ("Remote peer chose that icon.");                }            }        });                        customIconLabel = new JLabel (getIconBlank ());        panel.add (customIconLabel,"2,1");        customIconLabel.setBorder (new TitledBorder ("Custom Icon (Click)"));        customIconLabel.addMouseListener (new MouseAdapter () {            public void mouseClicked (MouseEvent e) {                                localActionCustomIconChosen ();                            }        });                        startGameButton = new JButton ("Start Game");        panel.add (startGameButton,"2,2");        startGameButton.addMouseListener (new MouseAdapter () {            public void mouseClicked (MouseEvent e) {                                getGameControl ().viewActionConfigured ();                            }        });                return panel;            }    /*     class BasicImageFilter extends FileFilter {          public boolean accept(File f) {                   String ext = null;                   String name = f.getName ();                   int extIndex = name.lastIndexOf (".");                   if (extIndex > 0 && extIndex < name.length ()) {                       ext = name.substring ( extIndex + 1, name.length () -1);              }                         }               public String getDescription() {                   return "Basic Image Filter"          }     }     **/    protected void localActionCustomIconChosen () {                JFileChooser chooser = new JFileChooser ();        // TODO: use a filefilter        int returnVal = chooser.showOpenDialog (getRootPane ().getParent ());                if (returnVal == JFileChooser.APPROVE_OPTION) {                        File file = chooser.getSelectedFile ();                        long fileSize = file.length ();                        LOG.info ("localActionCustomIconChoosen " + file.getAbsolutePath () + " " + fileSize);;                        if(fileSize > 0L && fileSize <= TicTacToeGameControl.MAX_ICON_SIZE) {                                LOG.info ("setting icon ");                                                                ImageIcon icon1 = new ImageIcon (new ImageIcon (this.gameControl.getFileImage (file.getAbsolutePath ())).getImage ().getScaledInstance (68,60, Image.SCALE_SMOOTH));                ImageIcon icon2 = new ImageIcon (new ImageIcon (this.gameControl.getFileImage (file.getAbsolutePath ())).getImage ().getScaledInstance (68,60, Image.SCALE_SMOOTH));                ImageIcon icon3 = new ImageIcon (new ImageIcon (this.gameControl.getFileImage (file.getAbsolutePath ())).getImage ().getScaledInstance (68,60, Image.SCALE_SMOOTH));                                // xxx: chcek for exceptions here                customIconLabel.setIcon (icon1);                                setLocalPlayerIconType (ICON_TYPE_CUSTOM);                setLocalPlayerIcon (icon2);                setLocalPlayerIconFileName (file.getAbsolutePath ());                currentIconLabel.setIcon (icon3);            }                    }    }            protected void localActionPlayAgain () {        EventQueue.invokeLater (new Runnable () {            public void run () {                playAgainButton.setEnabled (false);                playAgainButton.setVisible(false);                                                            }                                });        updateGameStateView ("New Game!");        this.resetGrid ();                getGameControl ().viewActionNewGame ();            }        protected TicTacToeGameControl getGameControl () {                return gameControl;            }        public void setCurrentPlayersTurn (int player) {                if(TicTacToeGameControl.REMOTE_PLAYER == player) {                        updatePlayersTurnView (this.remotePlayerName+TicTacToeDialogPanel.DISPLAY_REMOTE_PLAYERS_TURN);                    }else if(TicTacToeGameControl.LOCAL_PLAYER == player) {                        updatePlayersTurnView (TicTacToeDialogPanel.DISPLAY_LOCAL_PLAYERS_TURN);                    }else if(TicTacToeGameControl.SESSION_ENDED == player) {                        updatePlayersTurnView ("");        }            }                public void setRemotePlayerName (String name) {                this.remotePlayerName = name;                updateRemotePlayerNameView ();    }        public void updateRemotePlayerNameView () {        EventQueue.invokeLater (new Runnable () {            public void run () {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -