2 static final int DO NOTHING ON CLOSE static final int HIDE ON CLOSE static final int DISPOSE ON CLOSE static final int EXIT ON CLOSE void setvisible

Similar documents
Thread

text_12.dvi

text_13.dvi

2.2 Java C main Java main 2 C 6 C Java 3 C Java ( ) G101Hello.java G101Hello main G101Hello.java /* G101Hello */ class G101Hello { /* main */ public s

自宅でJava言語の開発環境を作る方法

6 p.1 6 Java GUI GUI paintcomponent GUI mouseclicked, keypressed, actionperformed mouseclicked paintcomponent thread, 1 GUI 6.0.2, mutlithread C

Microsoft PowerPoint - swing2.ppt

awt の主要なクラスを下記に示す クラス Component Container Button Label Panel Frame 説明画面にユーザインターフェイス要素として表示し, ユーザとのやり取りを行うコンポーネントを表すすべてのコンポーネントのスーパークラスになる ほかのコンポーネントを含

B 10 : N ip2003f10.tex B : 9/12/ :02 p.1/71

5 p Point int Java p Point Point p; p = new Point(); Point instance, p Point int 2 Point Point p = new Point(); p.x = 1; p.y = 2;

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

Java言語 第1回

< F2D834F838C A815B A CC>

ガイダンス

< F2D B838A835882CC8CF68EAE2E6A7464>

Java演習(4) -- 変数と型 --

ガイダンス

Object MenuComponent MenuBar MenuItem Menu CheckboxMenuItem

ガイダンス

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

r2.dvi

Prog1_12th

I. (i) Java? (A). 2Apples (B). Vitamin-C (C). Peach21 (D). Pine_Apple (ii) Java? (A). Java (B). Java (C). Java (D). JavaScript Java JavaScript Java (i

Java言語 第1回

:30 12:00 I. I V II. III. IV. ( a d) V. VI : A ActionListener aa addactionlistener AE ActionEvent K KeyListener ak addkeyliste

次の演習課題(1),(2)のプログラムを完成させよ

Java 2 - Lesson01

ÿþ˜u#u·0¹0Æ0à0

public class Kadai _02 { public static void main(string[] args) { MyFrame frame = new MyFrame("Kadai _02"); (2) フレームのクラス名は MyFrame とし 以下

public class MyFrame { private JPanel panel1; private JPanel panel2; private JPanel panel3; private JPanel panel4; private JLabel label1; private JTex

< F2D92DE82E8914B82CC977088D32E6A7464>

r14.dvi

< F2D E E6A7464>

2

新・明解Java入門

K227 Java 2

PowerPoint Presentation

55 7 Java C Java TCP/IP TCP/IP TCP TCP_RO.java import java.net.*; import java.io.*; public class TCP_RO { public static void main(string[] a

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

< F2D82B682E182F182AF82F12E6A7464>

vol.30.}...`.X...b.h

< F2D F B834E2E6A7464>

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i

I. (i) Foo public (A). javac Foo.java java Foo.class (C). javac Foo java Foo (ii)? (B). javac Foo.java java Foo (D). javac Foo java Foo.class (A). Jav

最初に

......() JButton

Microsoft PowerPoint - prog13.ppt

Microsoft PowerPoint - prog13.ppt

< F2D8EA CE909482CC92EA82852E6A7464>

I HTML HashMap (i) (ii) :.java import java.net.*; import java.io.*; import java.util.hashmap; public class SimpleStopWatch { public static voi

< F2D825282CC947B909482CC A815B83682E6A>

< F2D82518CC282CC D2E6A7464>

Java 3 p.2 3 Java : boolean Graphics draw3drect fill3drect C int C OK while (1) int boolean switch case C Calendar java.util.calendar A

ALG ppt

Prog1_12th

Safari AppletViewer Web HTML Netscape Web Web 15-1 Applet Web Applet init Web paint Web start Web HTML stop destroy update init Web paint start Web up

: : : TSTank 2

I. java.awt.rectangle java.lang.math random Java TM API java.awt Rectangle Rectangle (x,y)... public int x Rectangle X public int y Rectangle Y public

untitled

r2.dvi

GUIプログラムⅣ

Java 2 - Lesson01

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

< F2D B825082CC96E291E82E6A7464>

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

< F2D BCA82CC978E89BA82CC8EC08CB12E6A7464>

Java - Visual Editor

Java学習教材

< F2D89BA8EE882C E6A7464>

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

IT プロジェクト

< F2D A839382CC906A2E6A7464>

1 Java Java GUI , 2 2 jlabel1 jlabel2 jlabel3 jtextfield1 jtextfield2 jtextfield3 jbutton1 jtextfield1 jtextfield2 jtextfield3

Microsoft Word - keisankigairon.ch doc

Microsoft PowerPoint - OOP.pptx

アトミックコンポーネント ( 部 品 )<ボタン, 文 字 > 中 間 コンテナ ( 部 品 を 置 く 場 所 ) トップレベルコンテナ (GUI を 表 示 するための 場 所.コンテントペイン) Swingコンポーネントを 利 用 する 手 順 サンプル 10.1 (Helo.java)につい

2

Java updated

< F2D A838B838D96402E6A7464>

解きながら学ぶJava入門編

GUIプログラムⅤ

< F2D82518E9F8AD CC95BD8D7388DA93AE2E6A7464>

ガイダンス

Java (7) Lesson = (1) 1 m 3 /s m 2 5 m 2 4 m 2 1 m 3 m 1 m 0.5 m 3 /ms 0.3 m 3 /ms 0.6 m 3 /ms 1 1 3

I java A


2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

8 if switch for while do while 2

アプレットの作成

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");

問題1 以下に示すプログラムは、次の処理をするプログラムである

ガイダンス

:30 12:00 I. I VII II. III. IV. ( a d) V. VI : this==null, T == N A ActionListener A addactionlistener C class D actionperforme

アルゴリズムとデータ構造1

r02.dvi

ohp02.dvi

ALG ppt

明解Javaによるアルゴリズムとデータ構造

Transcription:

12 2013 7 2 12.1 GUI........................... 12 1 12.2............................... 12 4 12.3..................................... 12 7 12.4....................................... 12 9 12.5 : FreeCellPanel.java............................ 12 10 12.1 GUI JFC/Swing GUI javax.swing.jframe ( ) 1 GUI Swing GUI javax.swing.jcomponent JFrame ( ) ( ) 1 ( ) JFrame Swing JFrame GUI Java JFrame JFrame() JFrame(String title) title 1 content panes 12 1

2 static final int DO NOTHING ON CLOSE static final int HIDE ON CLOSE static final int DISPOSE ON CLOSE static final int EXIT ON CLOSE void setvisible(boolean b) / b void setdefaultcloseoperation (int operation) void seticonimage (Image image) void setjmenubar (JMenuBar bar) void setcontentpane (Container 3 pane) Container getcontentpane() void pack() void addwindowlistener (WindowListener 4 listener) operation image bar pane WindowEvent 5 listener JFrame JPanel JMenuBar JFrame JFrame setvisiable(true) setdefaultcloseoperation 4 1 JFrame HIDE ON CLOSE EXIT ON CLOSE 4 addwindoweventlistener WindowListener ( ) 2 4 JFrame WindowConstants ( ) (EXIT ON CLOSE JFrame ) 5 java.awt.event.windowevent 3 java.awt.container (JComponent ) 4 java.awt.events.windowlistener 12 2

G1201.java JFrame 5 6 main Swing JFrame G1201.java 1 import javax.swing.*; 2 3 public class G1201 implements Runnable { 4 public void run() { 5 JFrame f = new JFrame(); 6 f.setvisible(true); 7 } 8 9 public static void main(string[] args) { 10 SwingUtilities.invokeLater(new G1201()); 11 } 12 } 5 6 f.setdefaultcloseoperation(jframe.exit_on_close); 1 JFrame GUI getcontentpane (JFrame JPanel ) add Card java.awt.container p = f.getcontentpane(); p.add(new Card()); java.awt.container Swing AWT GUI add GUI java.awt.component Component AWT GUI Swing GUI Component javax.swing.jcomponent 6 add Swing JFrame (JPanel) (JFrame) JFrame pack 6 Component Container JComponent 12 3

f.pack(); pack 0 setvisible(true) (G1201.java ) ( ) 7 G1202.java run Card G1202.java 1 import java.awt.*; 2 import javax.swing.*; 3 import jp.ac.ryukoku.math.graphics.*; 4 5 public class G1202 implements Runnable { 6 7 public void run() { 8 JFrame f = new JFrame(); 9 f.setdefaultcloseoperation(jframe.exit_on_close); 10 Container p = f.getcontentpane(); 11 p.add(new Card()); 12 f.pack(); 13 f.setvisible(true); 14 } 15 16 public static void main(string[] args) { 17 SwingUtilities.invokeLater(new G1202()); 18 } 19 } G1202.java (120 ) ( 80 ) 12.2 JFrame JPanel ( ) GUI (add ) JFC java.awt.layoutmanager G1202.java 7 12 4

BorderLayout JFrame JPanel java.awt.borderlayout 8 BorderLayout (JPanel ) 5 1 NORTH WEST CENTER EAST SOUTH BorderLayout 1. NORTH SOUTH 2. WEST EAST NORTH SOUTH 3. CENTER BorderLayout (JPanel ) 1 add CENTER G1201.java 11 add CENTER 4 void add(component comp, Object const) 2 add 9 2 BorderLayout 5 5 BorderLayout 8 BorderLayout LayoutManager 9 2 add 1 add JFrame JFrame add ( ) JFrame add G1202.java 11 p.add(new Card()); f.add(new Card()); 12 5

BorderLayout() 5 BorderLayout(int h, int v) static final String NORTH static final String WEST static final String CENTER static final String EAST static final String SOUTH 5 h v NORTH WEST CENTER EAST SOUTH G1202.java run public void run() { JFrame f = new JFrame(); f.setdefaultcloseoperation(jframe.exit_on_close); Container p = f.getcontentpane(); p.add(new Card(), BorderLayout.CENTER); p.add(new Card(), BorderLayout.NORTH); p.add(new Card(), BorderLayout.WEST); p.add(new Card(), BorderLayout.SOUTH); p.add(new Card(), BorderLayout.EAST); f.pack(); f.setvisible(true); } NORTH SOUTH Card 120 WEST EST Card 80 JFC FlowLayout 1 1 BoxLayout 1 1 12 6

GridLayout 1 G103TicTacToe.java 9 JButton GridLayout GridBagLayout ( ) CardLayout GroupLayout 12.3 GUI ( ) 8 4 12 7

1. 1 1 2. 1 2 3 10 3. 1 1 4. ( ) 5. 6. ( ) 1 1 1 ( ) 3 7 6 5 4 4 ( ) 8 FreeCellPanel.java GamePanel FreeCellPanel GamePanel JPanel G1203.java FreeCell JFrame FreeCellPanel start G1203.java import java.awt.*; import javax.swing.*; public class G1203 implements Runnable { public void run() { JFrame f = new JFrame(); f.setdefaultcloseoperation(jframe.exit_on_close); Container p = f.getcontentpane(); FreeCellPanel freecell = new FreeCellPanel(); p.add(freecell); f.pack(); f.setvisible(true); freecell.start(); } } public static void main(string[] args) { SwingUtilities.invokeLater(new G1203()); } 12 8

12.4 1. NetBeans IDE GUI Builder 2 ( ) G1204.java FreeCellPanel start System exit NetBeans IDE GUI Builder 2. FreeCellPanel.java cardpicked 12 9

12.5 : FreeCellPanel.java FreeCellPanel.java FreeCellPanel Cell Home Free Cascade 4 Home Free Cascade 3 3 Cell Cell Pile movablefrom movableto 2 10 abstract 11 FreeCellPanel.java Pile Pile(double dx, double dy) 1 (dx, dy) Pile() Pile(0.0, -0.15) (8 ) Card void setsticky(boolean s) ( ) s false s true (107 ) Pile void remove() (117 ) Card void moveasyncto(pile p) p (120 ) Pile void movecardsasync(card c, Pile p) c p (168 ) 1 import jp.ac.ryukoku.math.graphics.*; 2 3 abstract class Cell extends Pile { 4 Cell() { 5 } 6 7 Cell(double dx, double dy) { 8 super(dx, dy); FreeCellPanel.java 10 10 11 12 10

9 } 10 11 /* card free 12 abstract boolean movablefrom(card card, int free); 13 14 /* from card 15 abstract boolean movableto(cell from, Card card, int free); 16 } 17 18 class Free extends Cell { 19 boolean movablefrom(card card, int free) { 20 return true; 21 } 22 23 boolean movableto(cell from, Card card, int free) { 24 return isempty(); 25 } 26 } 27 28 class Home extends Cell { 29 boolean movablefrom(card card, int free) { 30 return false; 31 } 32 33 boolean movableto(cell from, Card card, int free) { 34 if (isempty()) { 35 return card.rank == Rank.ACE; 36 } 37 Card top = top(); 38 return card.suit == top.suit 39 && card.rank.getnumber() == top.rank.getnumber() + 1; 40 } 41 } 42 43 class Cascade extends Cell { 44 Cascade() { 45 super(0.0, 30.0); 46 } 47 48 boolean movablefrom(card card, int free) { 49 Card prev = null; 50 for (Card c : getcards()) { 51 if (prev!= null) { 52 if (free-- <= 0) { 53 return false; 54 } 55 if (c.isred() == prev.isred() c.rank.getnumber() 56!= prev.rank.getnumber() - 1) { 57 return false; 58 } 59 prev = c; 60 } else if (c == card) { 61 prev = c; 62 } 63 } 64 return true; 65 } 66 67 boolean movableto(cell from, Card card, int free) { 12 11

68 /* free 1 69 if (isempty() &&!from.movablefrom(card, free - 1)) { 70 return false; 71 } 72 if (isempty()) { 73 return true; 74 } 75 Card top = top(); 76 return (card.isred()!= top.isred() 77 && card.rank.getnumber() == top.rank.getnumber() - 1); 78 } 79 } 80 81 public class FreeCellPanel extends GamePanel 82 implements CardListener { 83 Cell[] freecells = new Cell[4]; 84 Cell[] homecells = new Cell[4]; 85 Cell[] cascades = new Cell[8]; 86 87 public FreeCellPanel() { 88 for (int i = 0; i < freecells.length; i++) { 89 freecells[i] = new Free(); 90 add(freecells[i], 30 + i * 90, 30); 91 } 92 for (int i = 0; i < homecells.length; i++) { 93 homecells[i] = new Home(); 94 add(homecells[i], 420 + i * 90, 30); 95 } 96 for (int i = 0; i < cascades.length; i++) { 97 cascades[i] = new Cascade(); 98 add(cascades[i], 40 + i * 90, 180); 99 } 100 } 101 102 /* 103 public void start() { 104 reset(); 105 Deck d = new Deck(); 106 for (Card c : d.getcards()) { 107 c.setsticky(true); 108 } 109 d.shuffle(); 110 d.flip(); 111 add(d, 20, 620); 112 int i = 0; 113 Card[] cards = d.getcards(); 114 while (!d.isempty()) { 115 d.pick(); 116 } 117 d.remove(); 118 for (Card c : cards) { 119 c.addcardlistener(this); 120 c.moveasyncto(cascades[i++ % cascades.length]); 121 } 122 } 123 124 /* 125 public void reset() { 126 for (Pile p : freecells) { 12 12

127 p.clear(); 128 } 129 for (Pile p : homecells) { 130 p.clear(); 131 } 132 for (Pile p : cascades) { 133 p.clear(); 134 } 135 } 136 137 /* 138 public int countfree() { 139 int free = 0; 140 for (Pile p : freecells) { 141 if (p.isempty()) { 142 free++; 143 } 144 } 145 for (Pile p : cascades) { 146 if (p.isempty()) { 147 free++; 148 } 149 } 150 return free; 151 } 152 153 /* 154 public boolean cardselected(cardevent e) { 155 Cell cell = (Cell) e.getpile(); 156 return cell.movablefrom(e.getcard(), countfree()); 157 } 158 159 /* 160 public boolean cardmoved(cardevent e) { 161 Card card = e.getcard(); 162 Cell from = (Cell) e.getpile(); 163 Cell to = (Cell) e.getdest(); 164 if (from == null to == null) { 165 return false; 166 } 167 if (to.movableto(from, card, countfree())) { 168 from.movecardsasync(card, to); 169 return true; 170 } 171 return false; 172 } 173 174 /* 175 public void cardpicked(cardevent e) { 176 } 177 } 12 12 13