java实现中国象棋1:界面的制作
java實現中國象棋1:界面的制作
- 前言
- 界面思路
- 棋盤
- 棋子
- 按鈕和Logo
前言
中國象棋的界面主要有三個部分:棋盤,棋子和按鈕。棋盤在網上可以找到許多相關的圖片,但是棋子和按鈕就找不到,或者找到的棋子圖片很丑,因此我就自己用PS畫了棋子和按鈕,有需要的朋友可以加我微信,我會把我的微信號放在文章最后面。注:我們把所有的圖片都放在包的下面。例如Package的名字為Chinesechess,那么就在此Package下新建一個名為Chinesechess.image的package,并把圖片放入,不然程序將找不到圖片。(作者使用的IDE為Eclipse,不同的IDE可能會有不同的引入圖片的方法。請大家根據自己所使用的IDE選擇合適的方法引入圖片)
界面思路
棋盤
棋盤的圖片在網上找一張自己覺得好看的就好,直接在百度圖片里就可以找到許多種類的棋盤圖片。我的思路是用JPanel的Paint方法把圖片畫到面板上,面板繼承JPanel類。代碼如下:
// DrawUI.javapublic class DrawUI extends JPanel {public void initui() {// 創建面板JFrame jf = new JFrame();// 設置面板屬性jf.setSize(1240, 860);jf.setTitle("中國象棋");jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);// 設置關閉窗體即清除進程jf.getContentPane().setBackground(Color.WHITE);// 設置背景顏色為白色jf.setLocationRelativeTo(null);// 窗口jf.setResizable(false);// 設置窗體不可放縮this.setBackground(Color.white);jf.add(this);jf.setVisible(true);}// 重繪public void paint(Graphics g) {super.paint(g);// 畫棋盤g.drawImage(new ImageIcon(getClass().getResource("image\\"+"棋盤.jpg")).getImage(), 90, 60, 625, 700, this);}public static void main(String args[]) {DrawUI ui = new DrawUI();ui.initui();} }此時界面如下:
棋子
因為我們需要對棋盤上的棋子進行點擊操作,只要一個DrawUI類是肯定不夠的,所以我們新建一個監聽器的類,在這個類里面我們對棋子進行操作。我的思路是建立一個二維數組,每種棋子用一個數字來表示,例如“將”我用數字5表示,“卒”我都用7表示。詳細表示為:
接下來我們需要對棋盤的起始點和棋盤的格子的大小進行測量,并自己定義要畫的棋子的大小,寫在init的接口里。
代碼如下:
此時的界面如下:
按鈕和Logo
和一般的添加按鈕的不同是我們需要通過使用JButton的Paint方法來對按鈕進行添加圖片的操作,并且用setBounds方法設置按鈕的位置,一定要把JPanel的布局設置為nullnullnull,不然無效。我們新建一個JPanel對象,用來添加按鈕。并且為了好看,我又在右上角加了個Logo。代碼如下:
// 添加JPanelJPanel jp = new JPanel();jp.setPreferredSize(new Dimension(450, 1));jp.setBackground(Color.white);jp.setLayout(null);jf.add(jp, BorderLayout.EAST);// 添加按鈕String[] ShapeBtn = { "開始游戲", "重新開始", "悔棋" };for (int i = 0; i < ShapeBtn.length; i++) {String name = ShapeBtn[i];JButton jbt = new JButton(name) {private static final long serialVersionUID = 1L;Image jbti = new ImageIcon(this.getClass().getResource("image\\" + name + ".png")).getImage();public void paint(Graphics g) {g.drawImage(jbti, 0, 0, 250, 100, null);}};jbt.setBounds(100, 260 + 150 * i, 250, 100);jbt.addActionListener(ls);jp.add(jbt);}// 添加JLabelJLabel jl = new JLabel("中國象棋") {private static final long serialVersionUID = 1L;Image jli = new ImageIcon(this.getClass().getResource("image\\" + "中國象棋.png")).getImage();public void paint(Graphics g) {g.drawImage(jli, 0, 0, 400, 204, null);}};jl.setBounds(0, 0, 400, 204);jp.add(jl);現在效果如下:
現在我們的界面已經做好了,接下來就要進行重要的監聽器部分。
關注微信公眾號:圖靈完備,回復中國象棋即可獲得圖片及代碼資源。
微信號:YonminMa
總結
以上是生活随笔為你收集整理的java实现中国象棋1:界面的制作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 香港新世代加密资产网红正在崛起
- 下一篇: 流体力学有限元法(三)