本文实例讲述了 Java a, 分享给大家供大家参考, 具体代码如下
패키지 gyb.exam; import java.awt.borderlayout; import java.awt.color; import java.awt.dimension; import java.awt.font; import java.awt.graphics; import java.awt.point; import java.awt.toolkit; import java.awt.event. java.awt.event.mouseadapter; import java.awt.event.mouseevent; import java.util.arraylist; 가져 오기 javax.swing.icon; import javax.swing.imageicon; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jmenu; import javax.swing.jmenubar; import javax.swing.jmenuit.jmenuit; javax.swing.jpanel; import javax.swing.border.titredborder; 공개 클래스 메인 프레임은 JFrame {private static int big = 15; 개인 정적 최종 int 1 = 25; 개인 정적 최종 int 시작 = 10; 개인 정적 int x = big*start/2; 개인 정적 int y = big*start/2; 개인 int hl = big*one+start; 개인 정적 부울 isblack; canvasframe canvas = new canvasframe (); 캔버스 프레임 캔; 그래픽 g; public mainframe () {init (); } 개인 포인트 포인트; private arraylist <point> blacklist = new arraylist <point> (); private arraylist <point> Whitelist = new Arraylist <point> (); private void init () {jmenubar bar = new jmenubar (); setjmenubar (bar); setSize (600,600); settitle ( "" "); jmenu 메뉴 = New Jmenu ( "게임"); bar.add (메뉴); jmenuitem start = new jmenuitem ( "시작"); jmenuitem end = new jmenuitem ( "棋盘大小"); end.addactionListener (New ActionListener () {public void ActionPerformed (ActionEvent e) {}}); Jmenuitem Renew = New Jmenuitem ( "重新开始"); jmenuitem exit = new jmenuitem ( "退出"); exit.addactionListener (new ActionListener () {public void actionPerformed (ActionEvent e) {System.Exit (0);}}; Renew.addactionListener (new ActionListener () {public void actionPerformed (ActionEvent e) {blacklist.clear (); Whitelist.clear ();}}); menu.add (시작); menu.add (갱신); menu.add (끝); menu.add (종료); setLayout (New BorderLayout ()); Add (BorderLayout.Center, createCenter ()); add (borderlayout.east, createeast ()); } private boolean iswin (arraylist <point> 목록) {int x; in y; int idx = 0; 루프 : for (point p : list) {x = px; y = py; idx = 0; while (list.contains (new point (x, y))) {idx ++; x = x-one; if (idx == 5) 브레이크 루프; } x = px; y = py; idx = 0; while (list.contains (new point (x, y))) {idx ++; y = y-one; if (idx == 5) 브레이크 루프; } x = px; y = py; idx = 0; while (list.contains (new point (x, y))) {idx ++; x = x-one; y = y-one; if (idx == 5) 브레이크 루프; } x = px; y = py; idx = 0; while (list.contains (new point (x, y))) {idx ++; x = x-one; y = y+one; if (idx == 5) 브레이크 루프; }} return idx == 5; } private jpanel createeast () {jpanel pane = new jpanel (); BorderLayout Border = New BorderLayout (); pane.setlayout (테두리); Pane.setborder (새로운 제목의 보더 ( "五子棋")); Icon Image = new ImageIcon (getClass (). getResource ( "mm.png")); pane.add (BorderLayout.north, New Jlabel (image, jlabel.center)); pane.add (borderlayout.center, ballcolor ()); pane.add (BorderLayout.South, button ()); 반환 창; } private jpanel ballcolor () {jpanel pane = new jpanel (); Pane.setLayout (New BorderLayout ()); can = new canvasframe () {public void paint (그래픽 g) {g.setcolor (color.pink); G.FillRect (1, 1,200,300); g.setfont (new font ( "sans", font.bold, 20)); g.setcolor (color.black); G.Filloval (55, 20,25,30); G.DrawString ( "黑子", 10, 43); G. 세트 컬러 (Color.white); G.Filloval (55, 60,25,30); G.DrawString ( "白子", 10, 83); if (isblack) {g.setcolor (color.black); G.DrawString ( "黑方落子", 5, 120); } else {g.setColor (color.white); G.DrawString ( "白方落子", 5,120); } can.repaint (); }}; pane.add (BorderLayout.Center, can); 반환 창; } private jpanel button () {jpanel pane = new jpanel (); BorderLayout Bor = New BorderLayout (); JBUTTON START = NEW JBUTTON ( "开始"); JBUTTON END = NEW JBUTTON ( "结束"); end.addactionListener (New ActionListener () {public void actionPerformed (ActionEvent e) {System.Exit (0);}}); Pane.setLayout (BOR); bor.setvgap (5); Pane.setborder (새로운 제목의 보더 ( "")); pane.add (BorderLayout.north, Start); pane.add (BorderLayout.South, End); 반환 창; } private jpanel createCenter () {jpanel pane = new jpanel (); Canvas.setPreferredSize (New Dimension (HL+10, HL+10)); canvas.addmouselistener (new MouseAdapter () {public void mouseclicked (mouseevent e) {loop : if (e.getButton () == mouseevent.button1) {x = e.getx (); if (! whitelist.add (iswin) {joptionpane.showmessageed.clear (); isblack =! isblack; pane.add (캔버스); 반환 창; } public static void main (String [] args) {mainframe frame = new Mainframe (); frame.center (프레임); frame.pack (); frame.setVisible (true); } public void center (jframe frame) {// 툴킷 是当前 绘图系统集合工具包 툴킷 툴킷 = 툴킷 .getDefaultToolKit (); Dimension Screen = Toolkit.getScreensize (); // int framewidth = frame.getWidth (); int framehigh = frame.getheight (); int x = (screen.width-framewidth)/2; int y = (screen.height-framehigh)/2; frame.setlocation (x, y); } class canvasframe 확장 jpanel {public void paint (그래픽 g) {g.setcolor (color.pink); G.FillRect (0, 0, HL+20, HL+20); g.setcolor (color.black); for (int i = start; i <= hl; i = i+one) {for (int j = start; j <= hl; j = j+one) {g.drawline (i, j, hl, j); }} for (int i = start; i <= hl; i = i+one) {for (int j = start; j <= hl; j = j+one) {g.drawline (i, j, i, hl); }} g.setColor (color.yellow); G.DrawRect (start/2, start/2, hl+1, hl+1); g.setcolor (color.black); for (포인트 포인트 : 블랙리스트) {g.filloval (point.x, point.y, 20, 25); } g.setColor (Color.white); for (포인트 포인트 : Whitelist) {g.filloval (point.x, point.y, 20, 25); }}}}效果图 :
以上所述就是本文的全部内容了 以上所述就是本文的全部内容了, 希望能够对大家熟练掌握 java 有所帮助。