#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int a,b,c;
int main(){
printf("請輸入三邊的長,並以逗號隔開:\n");
scanf("%d,%d,%d",&a,&b,&c);
if(a<=0 || b<=0 || c<=0){
printf("請輸入正數");
return 1;
}
if(a+b>c && b+c>a && c+a>b){
if(a*a==b*b+c*c || b*b==a*a+c*c || c*c==b*b+a*a){
printf("是直角三角形\n");
return 0;
}
if(a==b||b==c||a==c){
if(a==b && b==c && a==c){
printf("是正三角形\n");
return 0;
}
else if(a==b!=c || b==c!=a || c==a!=b){
printf("是等腰三角形\n");
return 0;
}
}
printf("other三角形\n");
return 0;
}
else if(a+b<=c || b+c<=a || c+a<=b){
printf("No 三角形\n");
return 0;
}
}
關於我
就讀逢甲大學
正在修java
2016年10月30日 星期日
2015年5月27日 星期三
2015年5月26日 星期二
期末考試 APP Inventor 2 範例程式 比大小遊戲 20分
1.製作的網頁
(1) 電腦為莊家,使用者為玩家
(2) 每回合下賭注,每人兩顆骰子
(3) 點數合比大小,大者勝出,平手則為莊家贏
3.畫面配置:
4.程式碼
5.手機畫面
2015年5月16日 星期六
期末考試40分利用Android Studio 寫APP範例 BMI程式
1. 安裝Android Studio
到此網站http://developer.android.com/sdk/installing/studio.html
下載Android Studio並安裝
2.照他的方法一步一步做
http://chiachiku.pixnet.net/blog/post/64235911-android%E7%A8%8B%E5%BC%8F%E7%AF%84%E4%BE%8B%EF%BC%88%E4%B8%80%EF%BC%89bmi%E8%A8%88%E7%AE%97%E7%A8%8B%E5%BC%8F---%E8%A4%87%E8%A3%BD%E7%AF%87
3.完成圖
到此網站http://developer.android.com/sdk/installing/studio.html
下載Android Studio並安裝
2.照他的方法一步一步做
http://chiachiku.pixnet.net/blog/post/64235911-android%E7%A8%8B%E5%BC%8F%E7%AF%84%E4%BE%8B%EF%BC%88%E4%B8%80%EF%BC%89bmi%E8%A8%88%E7%AE%97%E7%A8%8B%E5%BC%8F---%E8%A4%87%E8%A3%BD%E7%AF%87
3.完成圖
2015年5月15日 星期五
圖片推盤
1.先利用IG或其他的將圖片改成1:1的大小
2.http://rs5257.pixnet.net/blog/post/24358691-%E7%B7%9A%E4%B8%8A%E5%9C%96%E7%89%87%E5%88%87%E5%89%B2%E8%88%87%E5%89%AA%E8%A3%81
在利用上述網址教學把圖片才成16份
3.記得看圖片大小是幾成幾
EX:640*640的圖片大小切成16份就是等於每個1/16的圖片大小是160*160
4.然後再去改每個圖片的大小改成90*90
5.圖檔要用.png
6.圖檔請放在你放java檔的資料夾裡
7.圖檔名請用1,2,3.........以此類推 切割前的圖片不用改檔名沒關係
8.程式碼如下
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Toolkit;
import java.io.File;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
class J_JPanel extends JPanel
{
/**
*
*/
private static final long serialVersionUID = 1L;
Image m_image;
int showpicture=0;
@SuppressWarnings("static-access")
public J_JPanel()throws IOException
{ J_Puzzle a = new J_Puzzle();
if(a.changetime==-1)
showpicture = 1;
File f = new File("11111.png");
m_image = ImageIO.read(f);
}
public void paintComponent(Graphics g)
{
g.drawImage(m_image, 0, 0, 700, 700, this);
}
}
public class J_Puzzle extends JFrame implements ActionListener
{
/**
*
*/
private static final long serialVersionUID = 1L;
int i,j;
static int changetime = 0;
Container c = getContentPane();
JButton b[] = new JButton[16];
ImageIcon ic[][] = new ImageIcon[2][15];
public J_Puzzle() throws IOException
{
super("拼圖小遊戲");
String pic_name[] = new String[15];
for(i = 0;i < 2;i ++)
for(j = 0;j < 15;j ++)
{
pic_name[j] = String.valueOf(j+1+i*15)+".png";
ic[i][j] = new ImageIcon(pic_name[j]);
}
JMenuBar mBar = new JMenuBar();
setJMenuBar(mBar);
int k = 0;
JMenu []m = {new JMenu("菜單(M)"),new JMenu("幫助(H)")};
char mC[][] = {{'M','H'},{'S','X','C','Z'},{'E','T'}};
JMenuItem mItem[][] = {{new JMenuItem("開始(S)"),new JMenuItem("重置(X)"),new JMenuItem("背景更換(C)"),new JMenuItem("退出(Z)")},{new JMenuItem("查看樣圖(E)"),new JMenuItem("關於(T)")}};
for(i = 0;i < 2;i ++)
{
mBar.add(m[i]);
m[i].setMnemonic(mC[0][i]);
if(i==0)k = 0;
else k = 1;
for(j = 0;j < 4-i-k;j ++)
{
m[i].add(mItem[i][j]);
mItem[i][j].setMnemonic(mC[i+1][j]);
mItem[i][j].setAccelerator(KeyStroke.getKeyStroke("ctrl"+mC[i+1][j]));
mItem[i][j].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
JMenuItem mItem = (JMenuItem)e.getSource();
if(mItem.getText().equalsIgnoreCase("重置(X)")||mItem.getText().equalsIgnoreCase("開始(S)"))
{
int location[][] = {{17,13},{17,103},{17,193},{17,283},{107,13},{107,103},{107,193},{107,283}
,{197,13},{197,103},{197,193},{197,283},{287,13},{287,103},{287,193},{287,283}};
int rd_number[] = new int[16];
rd_number = randomnumber();
for(i = 1;i < 16;i ++)
b[i].setLocation(location[rd_number[i-1]-1][0],location[rd_number[i-1]-1][1]);
}
else if(mItem.getText().equalsIgnoreCase("背景更換(C)"))
{
changetime++;
for(i = 0;i < 15;i ++)
{
b[i+1].setIcon(null);
b[i+1].setIcon(ic[changetime][i]);
}
if(changetime==1)
changetime = -1;
}
else if(mItem.getText().equalsIgnoreCase("退出(Z)"))
{
int a = JOptionPane.showConfirmDialog(null, "您確定退出遊戲?");
if(a==0)
System.exit(0);
}
else if(mItem.getText().equalsIgnoreCase("查看樣圖(E)"))
{
JFrame jj = new JFrame("樣圖");
jj.setSize(700, 700);
jj.setLocation(Toolkit.getDefaultToolkit().getScreenSize().width/3-700,
Toolkit.getDefaultToolkit().getScreenSize().height/4);
jj.setVisible(true);
Container c1 = jj.getContentPane();
try {
c1.add(new J_JPanel(),BorderLayout.CENTER);
}
catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
if(mItem.getText().equalsIgnoreCase("關於(T)"))
{
JOptionPane.showMessageDialog(null, "簡單小遊戲\n製作人:菜鳥");
}
}
});
}
}
m[0].insertSeparator(1);m[1].insertSeparator(1);
GridBagLayout gr = new GridBagLayout();
c.setLayout(gr);
int gx[] = {0,1,2,3};
int gy[] = {0,1,2,3};
int k1;
Dimension d = new Dimension(90,90);
String s_number;
GridBagConstraints gc = new GridBagConstraints();
for(i = 1;i < 5;i ++)
{
if(i==4)k1=4;
else k1=5;
for(j = 1;j < k1;j ++)
{
gc.gridx = gx[j-1];
gc.gridy = gy[i-1];
gc.fill = GridBagConstraints.NONE;
s_number = String.valueOf(j+(i-1)*4);
b[j+(i-1)*4] = new JButton(s_number,ic[0][j+(i-1)*4-1]);
b[j+(i-1)*4].setPreferredSize(d);
b[j+(i-1)*4].setFont(new Font("宋體",Font.PLAIN,0));
gr.setConstraints(b[j+(i-1)*4],gc);
c.add(b[j+(i-1)*4]);
}
}
for(i = 1;i <16;i ++)
b[i].addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
int j;
JButton b = (JButton)e.getSource();
Point p = b.getLocation();
Point p1 = null;
for(j = -1;j < 2;j ++)
{
if(p.y+j*90>283||p.y+j*90<13)
continue;
else
{
Component a = c.getComponentAt(p.x, p.y+j*90);
if(a.getHeight()!=90)
p1 = new Point(p.x,p.y+j*90);
}
}
for(j = -1;j < 2;j ++)
{
if(p.x+j*90>287||p.x+j*90<17)
continue;
else
{
Component a = c.getComponentAt(p.x+j*90, p.y);
if(a.getHeight()!=90)
p1 = new Point(p.x+j*90,p.y);
}
}
if(p1!=null)
b.setLocation(p1.x, p1.y);
if(check()==true)
JOptionPane.showMessageDialog(null, "恭喜您成功了");
}
/*?生?机?*/
public int[] randomnumber()
{
Random rd = new Random();
int n[] = new int[15];
for(int i = 0 ;i < 15;i ++)
{
int temp = rd.nextInt(15)+1;
n[i] = temp;
for(int j = 0;j < i;j ++)
if(n[j]==temp)
{
i--;
break;
}
}
return n;
}
/*判?是否排序成功*/
public boolean check()
{
Point location[] = new Point[16];
boolean bo = false;
int count=0;
for(int i = 0;i < 4;i ++)
for(int j = 0;j < 4;j ++)
location[i*4+j] = new Point(17+j*90, 13+i*90);
for(int i = 0;i < 15;i ++)
{
if(b[i+1].getLocation().x==location[i].x&&b[i+1].getLocation().y==location[i].y)
count++;
if(count==15)
bo=true;
}
return bo;
}
public static void main(String args[]) throws IOException
{
J_Puzzle app = new J_Puzzle();
app.setDefaultCloseOperation(EXIT_ON_CLOSE);
app.setLocation(Toolkit.getDefaultToolkit().getScreenSize().width/3, Toolkit.getDefaultToolkit().getScreenSize().height/4);
app.setSize(700,700);
app.setVisible(true);
app.setResizable(false);
}
}
9.完成圖
2.http://rs5257.pixnet.net/blog/post/24358691-%E7%B7%9A%E4%B8%8A%E5%9C%96%E7%89%87%E5%88%87%E5%89%B2%E8%88%87%E5%89%AA%E8%A3%81
在利用上述網址教學把圖片才成16份
3.記得看圖片大小是幾成幾
EX:640*640的圖片大小切成16份就是等於每個1/16的圖片大小是160*160
4.然後再去改每個圖片的大小改成90*90
5.圖檔要用.png
6.圖檔請放在你放java檔的資料夾裡
7.圖檔名請用1,2,3.........以此類推 切割前的圖片不用改檔名沒關係
8.程式碼如下
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Toolkit;
import java.io.File;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
class J_JPanel extends JPanel
{
/**
*
*/
private static final long serialVersionUID = 1L;
Image m_image;
int showpicture=0;
@SuppressWarnings("static-access")
public J_JPanel()throws IOException
{ J_Puzzle a = new J_Puzzle();
if(a.changetime==-1)
showpicture = 1;
File f = new File("11111.png");
m_image = ImageIO.read(f);
}
public void paintComponent(Graphics g)
{
g.drawImage(m_image, 0, 0, 700, 700, this);
}
}
public class J_Puzzle extends JFrame implements ActionListener
{
/**
*
*/
private static final long serialVersionUID = 1L;
int i,j;
static int changetime = 0;
Container c = getContentPane();
JButton b[] = new JButton[16];
ImageIcon ic[][] = new ImageIcon[2][15];
public J_Puzzle() throws IOException
{
super("拼圖小遊戲");
String pic_name[] = new String[15];
for(i = 0;i < 2;i ++)
for(j = 0;j < 15;j ++)
{
pic_name[j] = String.valueOf(j+1+i*15)+".png";
ic[i][j] = new ImageIcon(pic_name[j]);
}
JMenuBar mBar = new JMenuBar();
setJMenuBar(mBar);
int k = 0;
JMenu []m = {new JMenu("菜單(M)"),new JMenu("幫助(H)")};
char mC[][] = {{'M','H'},{'S','X','C','Z'},{'E','T'}};
JMenuItem mItem[][] = {{new JMenuItem("開始(S)"),new JMenuItem("重置(X)"),new JMenuItem("背景更換(C)"),new JMenuItem("退出(Z)")},{new JMenuItem("查看樣圖(E)"),new JMenuItem("關於(T)")}};
for(i = 0;i < 2;i ++)
{
mBar.add(m[i]);
m[i].setMnemonic(mC[0][i]);
if(i==0)k = 0;
else k = 1;
for(j = 0;j < 4-i-k;j ++)
{
m[i].add(mItem[i][j]);
mItem[i][j].setMnemonic(mC[i+1][j]);
mItem[i][j].setAccelerator(KeyStroke.getKeyStroke("ctrl"+mC[i+1][j]));
mItem[i][j].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
JMenuItem mItem = (JMenuItem)e.getSource();
if(mItem.getText().equalsIgnoreCase("重置(X)")||mItem.getText().equalsIgnoreCase("開始(S)"))
{
int location[][] = {{17,13},{17,103},{17,193},{17,283},{107,13},{107,103},{107,193},{107,283}
,{197,13},{197,103},{197,193},{197,283},{287,13},{287,103},{287,193},{287,283}};
int rd_number[] = new int[16];
rd_number = randomnumber();
for(i = 1;i < 16;i ++)
b[i].setLocation(location[rd_number[i-1]-1][0],location[rd_number[i-1]-1][1]);
}
else if(mItem.getText().equalsIgnoreCase("背景更換(C)"))
{
changetime++;
for(i = 0;i < 15;i ++)
{
b[i+1].setIcon(null);
b[i+1].setIcon(ic[changetime][i]);
}
if(changetime==1)
changetime = -1;
}
else if(mItem.getText().equalsIgnoreCase("退出(Z)"))
{
int a = JOptionPane.showConfirmDialog(null, "您確定退出遊戲?");
if(a==0)
System.exit(0);
}
else if(mItem.getText().equalsIgnoreCase("查看樣圖(E)"))
{
JFrame jj = new JFrame("樣圖");
jj.setSize(700, 700);
jj.setLocation(Toolkit.getDefaultToolkit().getScreenSize().width/3-700,
Toolkit.getDefaultToolkit().getScreenSize().height/4);
jj.setVisible(true);
Container c1 = jj.getContentPane();
try {
c1.add(new J_JPanel(),BorderLayout.CENTER);
}
catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
if(mItem.getText().equalsIgnoreCase("關於(T)"))
{
JOptionPane.showMessageDialog(null, "簡單小遊戲\n製作人:菜鳥");
}
}
});
}
}
m[0].insertSeparator(1);m[1].insertSeparator(1);
GridBagLayout gr = new GridBagLayout();
c.setLayout(gr);
int gx[] = {0,1,2,3};
int gy[] = {0,1,2,3};
int k1;
Dimension d = new Dimension(90,90);
String s_number;
GridBagConstraints gc = new GridBagConstraints();
for(i = 1;i < 5;i ++)
{
if(i==4)k1=4;
else k1=5;
for(j = 1;j < k1;j ++)
{
gc.gridx = gx[j-1];
gc.gridy = gy[i-1];
gc.fill = GridBagConstraints.NONE;
s_number = String.valueOf(j+(i-1)*4);
b[j+(i-1)*4] = new JButton(s_number,ic[0][j+(i-1)*4-1]);
b[j+(i-1)*4].setPreferredSize(d);
b[j+(i-1)*4].setFont(new Font("宋體",Font.PLAIN,0));
gr.setConstraints(b[j+(i-1)*4],gc);
c.add(b[j+(i-1)*4]);
}
}
for(i = 1;i <16;i ++)
b[i].addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
int j;
JButton b = (JButton)e.getSource();
Point p = b.getLocation();
Point p1 = null;
for(j = -1;j < 2;j ++)
{
if(p.y+j*90>283||p.y+j*90<13)
continue;
else
{
Component a = c.getComponentAt(p.x, p.y+j*90);
if(a.getHeight()!=90)
p1 = new Point(p.x,p.y+j*90);
}
}
for(j = -1;j < 2;j ++)
{
if(p.x+j*90>287||p.x+j*90<17)
continue;
else
{
Component a = c.getComponentAt(p.x+j*90, p.y);
if(a.getHeight()!=90)
p1 = new Point(p.x+j*90,p.y);
}
}
if(p1!=null)
b.setLocation(p1.x, p1.y);
if(check()==true)
JOptionPane.showMessageDialog(null, "恭喜您成功了");
}
/*?生?机?*/
public int[] randomnumber()
{
Random rd = new Random();
int n[] = new int[15];
for(int i = 0 ;i < 15;i ++)
{
int temp = rd.nextInt(15)+1;
n[i] = temp;
for(int j = 0;j < i;j ++)
if(n[j]==temp)
{
i--;
break;
}
}
return n;
}
/*判?是否排序成功*/
public boolean check()
{
Point location[] = new Point[16];
boolean bo = false;
int count=0;
for(int i = 0;i < 4;i ++)
for(int j = 0;j < 4;j ++)
location[i*4+j] = new Point(17+j*90, 13+i*90);
for(int i = 0;i < 15;i ++)
{
if(b[i+1].getLocation().x==location[i].x&&b[i+1].getLocation().y==location[i].y)
count++;
if(count==15)
bo=true;
}
return bo;
}
public static void main(String args[]) throws IOException
{
J_Puzzle app = new J_Puzzle();
app.setDefaultCloseOperation(EXIT_ON_CLOSE);
app.setLocation(Toolkit.getDefaultToolkit().getScreenSize().width/3, Toolkit.getDefaultToolkit().getScreenSize().height/4);
app.setSize(700,700);
app.setVisible(true);
app.setResizable(false);
}
}
9.完成圖
2015年5月10日 星期日
按按鈕直接跑出亂數
1.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class QQ extends JFrame implements ActionListener
{
//static JFrame myfrm=new JFrame("JButton class"); // Java Class JFrame
//static AwtTestEvent myfrm=new AwtTestEvent("JFrame 1 "); // Java Class JFrame
static JTextField tbx1=new JTextField(2); // 建立1文字方塊物件
static JButton buttons[]=new JButton[25];//建立25個JButton
static JLabel labels[]=new JLabel [10];
public static void main(String args[])
{
QQ myfrm=new QQ();
String numbers[] =new String[25];
FlowLayout flow=new FlowLayout();
GridLayout grid12= new GridLayout(1,2);
GridLayout grid33= new GridLayout(5,5);
myfrm.setLayout(grid12);
myfrm.setSize(700,700);
JPanel p1 = new JPanel(grid33); //實作 panel 1
for (int i=0;i<25;i++)
{
numbers[i]=String.valueOf(i);
}
for (int i = 0; i < numbers.length; i++)
{
buttons[i] = new JButton(numbers[i]); // create buttons
p1.add(buttons[i], grid33); // 在 panel 1內加入按鈕陣列
buttons[i].addActionListener(myfrm);
}
myfrm.add(p1); // 在視窗myfrm 內加入 panel 1
JPanel p2 = new JPanel(flow); //實作 panel 2
myfrm.add(p2); // 在視窗myfrm 內加入 panel 2
myfrm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String stringValue;
int i,ran;
String numbers[] = new String[25];
String j;
for (i=0;i<25;i++)
{
numbers[i]=String.valueOf(i);
}
//上面迴圈是為了在numbers[ ] 裡面放進0~24的數字
for (i=0; i<=24;i++)
{
ran=(int)(Math.random()*(25-i)); // 產生亂數
buttons[i].setLabel(numbers[ran]); // 根據亂數,把numbers[ ] 裡面的數字 讓buttons[ ] 標題改變
//以下開始做對調
j=numbers[ran];
numbers[ran]=numbers[25-i-1];
numbers[25-i-1]=j;
}
}
}
2.完成圖
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class QQ extends JFrame implements ActionListener
{
//static JFrame myfrm=new JFrame("JButton class"); // Java Class JFrame
//static AwtTestEvent myfrm=new AwtTestEvent("JFrame 1 "); // Java Class JFrame
static JTextField tbx1=new JTextField(2); // 建立1文字方塊物件
static JButton buttons[]=new JButton[25];//建立25個JButton
static JLabel labels[]=new JLabel [10];
public static void main(String args[])
{
QQ myfrm=new QQ();
String numbers[] =new String[25];
FlowLayout flow=new FlowLayout();
GridLayout grid12= new GridLayout(1,2);
GridLayout grid33= new GridLayout(5,5);
myfrm.setLayout(grid12);
myfrm.setSize(700,700);
JPanel p1 = new JPanel(grid33); //實作 panel 1
for (int i=0;i<25;i++)
{
numbers[i]=String.valueOf(i);
}
for (int i = 0; i < numbers.length; i++)
{
buttons[i] = new JButton(numbers[i]); // create buttons
p1.add(buttons[i], grid33); // 在 panel 1內加入按鈕陣列
buttons[i].addActionListener(myfrm);
}
myfrm.add(p1); // 在視窗myfrm 內加入 panel 1
JPanel p2 = new JPanel(flow); //實作 panel 2
myfrm.add(p2); // 在視窗myfrm 內加入 panel 2
myfrm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String stringValue;
int i,ran;
String numbers[] = new String[25];
String j;
for (i=0;i<25;i++)
{
numbers[i]=String.valueOf(i);
}
//上面迴圈是為了在numbers[ ] 裡面放進0~24的數字
for (i=0; i<=24;i++)
{
ran=(int)(Math.random()*(25-i)); // 產生亂數
buttons[i].setLabel(numbers[ran]); // 根據亂數,把numbers[ ] 裡面的數字 讓buttons[ ] 標題改變
//以下開始做對調
j=numbers[ran];
numbers[ran]=numbers[25-i-1];
numbers[25-i-1]=j;
}
}
}
2.完成圖
2015年5月8日 星期五
5*5按鈕亂數
1.
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class SwingTestEvent extends JFrame implements ActionListener { //static JFrame myfrm=new JFrame("JButton class"); // Java Class JFrame //static AwtTestEvent myfrm=new AwtTestEvent("JFrame 1 "); // Java Class JFrame static JTextField tbx1=new JTextField(2); // 建立1文字方塊物件 static JButton buttons[]=new JButton[25];//建立25個JButton static JLabel labels[]=new JLabel [10]; public static void main(String args[]) { SwingTestEvent myfrm=new SwingTestEvent(); String numbers[] =new String[25]; FlowLayout flow=new FlowLayout(); GridLayout grid12= new GridLayout(1,2); GridLayout grid33= new GridLayout(5,5); myfrm.setLayout(grid12); myfrm.setSize(700,700); JPanel p1 = new JPanel(grid33); //實作 panel 1 for (int i=0;i<25;i++) { numbers[i]=String.valueOf(i); } for (int i = 0; i < numbers.length; i++) { buttons[i] = new JButton(numbers[i]); // create buttons p1.add(buttons[i], grid33); // 在 panel 1內加入按鈕陣列 } myfrm.add(p1); // 在視窗myfrm 內加入 panel 1 JPanel p2 = new JPanel(flow); //實作 panel 2 JButton btn1=new JButton("JButton 1"); // 建立按鈕物件 btn1 btn1.addActionListener(myfrm); p2.add(tbx1); // 在 panel 2內加入文字方塊 p2.add(btn1); // 在 panel 2內加入按鈕 myfrm.add(p2); // 在視窗myfrm 內加入 panel 2 myfrm.setVisible(true); } public void actionPerformed(ActionEvent e) { String stringValue; int i,ran; String numbers[] = new String[25]; String j; for (i=0;i<25;i++) { numbers[i]=String.valueOf(i); } //上面迴圈是為了在numbers[ ] 裡面放進0~24的數字 for (i=0; i<=24;i++) { ran=(int)(Math.random()*(25-i)); // 產生亂數 buttons[i].setLabel(numbers[ran]); // 根據亂數,把numbers[ ] 裡面的數字 讓buttons[ ] 標題改變 //以下開始做對調 j=numbers[ran]; numbers[ran]=numbers[25-i-1]; numbers[25-i-1]=j; } } }
2.完成圖
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class SwingTestEvent extends JFrame implements ActionListener { //static JFrame myfrm=new JFrame("JButton class"); // Java Class JFrame //static AwtTestEvent myfrm=new AwtTestEvent("JFrame 1 "); // Java Class JFrame static JTextField tbx1=new JTextField(2); // 建立1文字方塊物件 static JButton buttons[]=new JButton[25];//建立25個JButton static JLabel labels[]=new JLabel [10]; public static void main(String args[]) { SwingTestEvent myfrm=new SwingTestEvent(); String numbers[] =new String[25]; FlowLayout flow=new FlowLayout(); GridLayout grid12= new GridLayout(1,2); GridLayout grid33= new GridLayout(5,5); myfrm.setLayout(grid12); myfrm.setSize(700,700); JPanel p1 = new JPanel(grid33); //實作 panel 1 for (int i=0;i<25;i++) { numbers[i]=String.valueOf(i); } for (int i = 0; i < numbers.length; i++) { buttons[i] = new JButton(numbers[i]); // create buttons p1.add(buttons[i], grid33); // 在 panel 1內加入按鈕陣列 } myfrm.add(p1); // 在視窗myfrm 內加入 panel 1 JPanel p2 = new JPanel(flow); //實作 panel 2 JButton btn1=new JButton("JButton 1"); // 建立按鈕物件 btn1 btn1.addActionListener(myfrm); p2.add(tbx1); // 在 panel 2內加入文字方塊 p2.add(btn1); // 在 panel 2內加入按鈕 myfrm.add(p2); // 在視窗myfrm 內加入 panel 2 myfrm.setVisible(true); } public void actionPerformed(ActionEvent e) { String stringValue; int i,ran; String numbers[] = new String[25]; String j; for (i=0;i<25;i++) { numbers[i]=String.valueOf(i); } //上面迴圈是為了在numbers[ ] 裡面放進0~24的數字 for (i=0; i<=24;i++) { ran=(int)(Math.random()*(25-i)); // 產生亂數 buttons[i].setLabel(numbers[ran]); // 根據亂數,把numbers[ ] 裡面的數字 讓buttons[ ] 標題改變 //以下開始做對調 j=numbers[ran]; numbers[ran]=numbers[25-i-1]; numbers[25-i-1]=j; } } }
2.完成圖
亂數按鈕
1.
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.util.Arrays;
public class homework6
{
public static void main(String[] args) throws IOException
{
JFrame frame = new JFrame("作業GridLayout)");
GridLayout f1=new GridLayout(4, 13);
Container c=frame.getContentPane();
c.setLayout(f1);
int [] num = new int[9];//宣告一個數字陣列,用來記錄產生過的亂數
Arrays.fill(num,-1); //將陣列內容全都設為-1
int i=1;
do{
int j=(int)(Math.random()*9);
if(num[j] == 0) continue; //判斷是否亂數取出的數字是否出現過
num[j] = 0;//將出現過的數字索引值的陣列內容設為0,代表出現過
c.add(new JButton("第"+j+"個"));
i++;
}while(i<=9);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,300);
frame.setVisible(true);
}
}
2.完成圖
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.util.Arrays;
public class homework6
{
public static void main(String[] args) throws IOException
{
JFrame frame = new JFrame("作業GridLayout)");
GridLayout f1=new GridLayout(4, 13);
Container c=frame.getContentPane();
c.setLayout(f1);
int [] num = new int[9];//宣告一個數字陣列,用來記錄產生過的亂數
Arrays.fill(num,-1); //將陣列內容全都設為-1
int i=1;
do{
int j=(int)(Math.random()*9);
if(num[j] == 0) continue; //判斷是否亂數取出的數字是否出現過
num[j] = 0;//將出現過的數字索引值的陣列內容設為0,代表出現過
c.add(new JButton("第"+j+"個"));
i++;
}while(i<=9);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,300);
frame.setVisible(true);
}
}
2.完成圖
2015年4月24日 星期五
按鈕數字 (4*4)
1.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator2 implements ActionListener {
public static void main(String[] args) {
new Calculator2();
}
public Calculator2() {
JFrame window=new JFrame("Calculator2");
window.setDefaultLookAndFeelDecorated(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new GridLayout(4,4));
JPanel jplPanel = new JPanel();
jplPanel.setLayout(new GridLayout(4,4));
JButton button[]=new JButton[17];
for (int i = 1; i <= 16; i++)
{
button[i] = new JButton();
button[i].setSize(50,50);
button[i].setText(Integer.toString(i));
button[i].addActionListener(this);
jplPanel.add(button[i]);
}
button[1].setActionCommand("d1");
button[2].setActionCommand("d2");
button[3].setActionCommand("d3");
button[4].setActionCommand("d4");
button[5].setActionCommand("d5");
button[6].setActionCommand("d6");
button[7].setActionCommand("d7");
button[8].setActionCommand("d8");
button[9].setActionCommand("d9");
button[10].setActionCommand("d10");
button[11].setActionCommand("d11");
button[12].setActionCommand("d12");
button[13].setActionCommand("d13");
button[14].setActionCommand("d14");
button[15].setActionCommand("d15");
button[16].setActionCommand("d16");
window.getContentPane().add(jplPanel, BorderLayout.CENTER);
window.setSize(500,500);
window.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
String cmd2 = e.getActionCommand();
String cmd3 = e.getActionCommand();
String cmd4 = e.getActionCommand();
String cmd5 = e.getActionCommand();
String cmd6 = e.getActionCommand();
String cmd7 = e.getActionCommand();
String cmd8 = e.getActionCommand();
String cmd9 = e.getActionCommand();
String cmd10 = e.getActionCommand();
String cmd11 = e.getActionCommand();
String cmd12 = e.getActionCommand();
String cmd13 = e.getActionCommand();
String cmd14 = e.getActionCommand();
String cmd15 = e.getActionCommand();
String cmd16 = e.getActionCommand();
if (cmd == "d1") {
System.out.println("1");
}
if (cmd2 == "d2") {
System.out.println("2");
}
if (cmd3 == "d3") {
System.out.println("3");
}
if (cmd4 == "d4") {
System.out.println("4");
}
if (cmd5 == "d5") {
System.out.println("5");
}
if (cmd6 == "d6") {
System.out.println("6");
}
if (cmd7 == "d7") {
System.out.println("7");
}
if (cmd8 == "d8") {
System.out.println("8");
}
if (cmd9 == "d9") {
System.out.println("9");
}
if (cmd10 == "d10") {
System.out.println("10");
}
if (cmd11 == "d11") {
System.out.println("11");
}
if (cmd12 == "d12") {
System.out.println("12");
}
if (cmd13 == "d13") {
System.out.println("13");
}
if (cmd14 == "d14") {
System.out.println("14");
}
if (cmd15 == "d15") {
System.out.println("15");
}
if (cmd16 == "d16") {
System.out.println("16");
}
}
}
class AdapterDemo extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
2.完成圖
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator2 implements ActionListener {
public static void main(String[] args) {
new Calculator2();
}
public Calculator2() {
JFrame window=new JFrame("Calculator2");
window.setDefaultLookAndFeelDecorated(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new GridLayout(4,4));
JPanel jplPanel = new JPanel();
jplPanel.setLayout(new GridLayout(4,4));
JButton button[]=new JButton[17];
for (int i = 1; i <= 16; i++)
{
button[i] = new JButton();
button[i].setSize(50,50);
button[i].setText(Integer.toString(i));
button[i].addActionListener(this);
jplPanel.add(button[i]);
}
button[1].setActionCommand("d1");
button[2].setActionCommand("d2");
button[3].setActionCommand("d3");
button[4].setActionCommand("d4");
button[5].setActionCommand("d5");
button[6].setActionCommand("d6");
button[7].setActionCommand("d7");
button[8].setActionCommand("d8");
button[9].setActionCommand("d9");
button[10].setActionCommand("d10");
button[11].setActionCommand("d11");
button[12].setActionCommand("d12");
button[13].setActionCommand("d13");
button[14].setActionCommand("d14");
button[15].setActionCommand("d15");
button[16].setActionCommand("d16");
window.getContentPane().add(jplPanel, BorderLayout.CENTER);
window.setSize(500,500);
window.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
String cmd2 = e.getActionCommand();
String cmd3 = e.getActionCommand();
String cmd4 = e.getActionCommand();
String cmd5 = e.getActionCommand();
String cmd6 = e.getActionCommand();
String cmd7 = e.getActionCommand();
String cmd8 = e.getActionCommand();
String cmd9 = e.getActionCommand();
String cmd10 = e.getActionCommand();
String cmd11 = e.getActionCommand();
String cmd12 = e.getActionCommand();
String cmd13 = e.getActionCommand();
String cmd14 = e.getActionCommand();
String cmd15 = e.getActionCommand();
String cmd16 = e.getActionCommand();
if (cmd == "d1") {
System.out.println("1");
}
if (cmd2 == "d2") {
System.out.println("2");
}
if (cmd3 == "d3") {
System.out.println("3");
}
if (cmd4 == "d4") {
System.out.println("4");
}
if (cmd5 == "d5") {
System.out.println("5");
}
if (cmd6 == "d6") {
System.out.println("6");
}
if (cmd7 == "d7") {
System.out.println("7");
}
if (cmd8 == "d8") {
System.out.println("8");
}
if (cmd9 == "d9") {
System.out.println("9");
}
if (cmd10 == "d10") {
System.out.println("10");
}
if (cmd11 == "d11") {
System.out.println("11");
}
if (cmd12 == "d12") {
System.out.println("12");
}
if (cmd13 == "d13") {
System.out.println("13");
}
if (cmd14 == "d14") {
System.out.println("14");
}
if (cmd15 == "d15") {
System.out.println("15");
}
if (cmd16 == "d16") {
System.out.println("16");
}
}
}
class AdapterDemo extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
2.完成圖
2015年4月19日 星期日
數字推盤
1.程式碼
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Piece extends JFrame
{
//放數字九官格
private String [][] box = new String[][]{{"1","2","3"},
{"4","5","6"},
{"7","8"," "}};
private keyLis kl = new keyLis();//鍵盤事件
private ButtonHandler bh = new ButtonHandler();//功能表單事件
private final int LEFT = 37,UP = 38, RIGHT = 39, DOWN = 40;
private JLabel [] jl = new JLabel [9];
private JMenuBar jmb;
private JMenu game = new JMenu("遊戲");;
private JMenuItem [] gm = new JMenuItem[3];
private boolean isStart = false; //遊戲開始
//初始化遊戲變數值
private String[][] init()
{
final int ROW = 3, COL = 3;
String [][] boxTemp = new String[][]{{"1","2","3"},
{"4","5","6"},
{"7","8"," "}};
//用亂數打亂數字的排列
for(int count = 0; count < 200; count++)
{
String temp = " ";
int [] zero = null;
int ranNum = (int)(Math.random()*4)+LEFT;
zero = getZero(boxTemp); //取得0的位置
switch(ranNum)
{
case LEFT: //左移
if(zero[1]+1<boxTemp[zero[0]].length)
{
temp = boxTemp[zero[0]][zero[1]+1];
boxTemp[zero[0]][zero[1]+1] = " ";
}
break;
case UP: //上移
if(zero[0]+1<boxTemp.length)
{
temp = boxTemp[zero[0]+1][zero[1]];
boxTemp[zero[0]+1][zero[1]] = " ";
}
break;
case RIGHT: //右移
if(zero[1]-1 >= 0)
{
temp = boxTemp[zero[0]][zero[1]-1];
boxTemp[zero[0]][zero[1]-1] = " ";
}
break;
case DOWN: //下移
if(zero[0]-1 >= 0)
{
temp = boxTemp[zero[0]-1][zero[1]];
boxTemp[zero[0]-1][zero[1]] = " ";
}
break;
default:
}
boxTemp[zero[0]][zero[1]] = temp;
}
return boxTemp;
}
//取得0的位置
private int [] getZero(String [][] boxArr)
{
int location[] = new int[2];
for(int r = 0; r < boxArr.length; r++)
{
for(int c = 0; c < boxArr[r].length; c++)
{
//取得數字0的位置
if(boxArr[r][c].equals(" "))
{
location[0] = r; //" "的x位置
location[1] = c; //" "的y位置
}
}
}
return location;
}
public Piece()
{
super("數字拼圖");
Container c = getContentPane();
c = this.getContentPane();
jmb = new JMenuBar();
this.setJMenuBar(jmb); //加入工具列
//遊戲的選擇項目
jmb.add(game);
gm[0] = new JMenuItem("新局");
gm[1] = new JMenuItem("放棄");
gm[2] = new JMenuItem("結束遊戲");
game.add(gm[0]);
game.add(gm[1]);
game.addSeparator();
game.add(gm[2]);
gm[1].setEnabled(false);
//數字的排為3*3
c.setLayout(new GridLayout(3,3));
for(int i = 0; i < jl.length; i++)
{
jl[i] = new JLabel(" "+box[i/box.length][i%box.length]);
jl[i].setFont(new Font("Serif",Font.BOLD,40));
c.add(jl[i]);
}
//設定視窗
setSize(200,200);
setLocation(300,250);
setResizable(false);//視窗放大按鈕無效
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//註冊功能表單傾聽者
for(int m=0;m<gm.length;m++)
gm[m].addActionListener(bh);
//註冊鍵盤傾聽者
this.addKeyListener(kl);
}
//鍵盤事件處理
private class keyLis implements KeyListener
{
public void keyPressed(KeyEvent e)
{
if(isStart == true)
{
String temp = " ";
int [] zero = null;
zero = getZero(box); //取得" "的位置
switch(e.getKeyCode())
{
case LEFT: //按左鍵
if(zero[1]+1<box[zero[0]].length)
{
temp = box[zero[0]][zero[1]+1];
box[zero[0]][zero[1]+1] = " ";
}
break;
case UP: //按上鍵
if(zero[0]+1<box.length)
{
temp = box[zero[0]+1][zero[1]];
box[zero[0]+1][zero[1]] = " ";
}
break;
case RIGHT: //按右鍵
if(zero[1]-1 >= 0)
{
temp = box[zero[0]][zero[1]-1];
box[zero[0]][zero[1]-1] = " ";
}
break;
case DOWN: //按下鍵
if(zero[0]-1 >= 0)
{
temp = box[zero[0]-1][zero[1]];
box[zero[0]-1][zero[1]] = " ";
}
break;
default:
}
box[zero[0]][zero[1]] = temp;
//更新數字顯示的位置
for(int i=0; i< jl.length; i++)
jl[i].setText(" "+box[i/box.length][i%box.length]);
//判斷是否過關
if(box[0][0].equals("1") && box[0][1].equals("2") &&
box[0][2].equals("3") && box[1][0].equals("4") &&
box[1][1].equals("5") && box[1][2].equals("6") &&
box[2][0].equals("7") && box[2][1].equals("8") &&
box[2][2].equals(" ")
)
{
JOptionPane.showMessageDialog(null, "過關了!!", "訊息",
JOptionPane.INFORMATION_MESSAGE);
//判斷是否再玩一次
if(JOptionPane.showConfirmDialog(null, "再玩一次?", "訊息",
JOptionPane.YES_NO_OPTION) == 0
)
{
box = init();
for(int i=0; i< jl.length; i++)//更新數字顯示的位置
jl[i].setText(" "+box[i/box.length][i%box.length]);
}
else System.exit(0); //結束遊戲
}
}
}
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
}
//功能表單事件處理
private class ButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource() == gm[0]) //新局
{
box = init();
for(int i=0; i< jl.length; i++)//更新數字顯示的位置
jl[i].setText(" "+box[i/box.length][i%box.length]);
isStart = true;
gm[1].setEnabled(true);
}
else if(ae.getSource() == gm[1]) //放棄
{
isStart = false;
for(int i=0; i< jl.length; i++)//初始化數字顯示的位置
{
box[i/box.length][i%box.length] = Integer.toString(i+1);
if(box[i/box.length][i%box.length].equals("9")) box[i/box.length][i%box.length] = " ";
jl[i].setText(" "+box[i/box.length][i%box.length]);
}
}
else if(ae.getSource() == gm[2]) //結束遊戲
{
System.exit(0);
}
}
}
public static void main(String [] args)
{
new Piece();
}
}
2.完成圖
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Piece extends JFrame
{
//放數字九官格
private String [][] box = new String[][]{{"1","2","3"},
{"4","5","6"},
{"7","8"," "}};
private keyLis kl = new keyLis();//鍵盤事件
private ButtonHandler bh = new ButtonHandler();//功能表單事件
private final int LEFT = 37,UP = 38, RIGHT = 39, DOWN = 40;
private JLabel [] jl = new JLabel [9];
private JMenuBar jmb;
private JMenu game = new JMenu("遊戲");;
private JMenuItem [] gm = new JMenuItem[3];
private boolean isStart = false; //遊戲開始
//初始化遊戲變數值
private String[][] init()
{
final int ROW = 3, COL = 3;
String [][] boxTemp = new String[][]{{"1","2","3"},
{"4","5","6"},
{"7","8"," "}};
//用亂數打亂數字的排列
for(int count = 0; count < 200; count++)
{
String temp = " ";
int [] zero = null;
int ranNum = (int)(Math.random()*4)+LEFT;
zero = getZero(boxTemp); //取得0的位置
switch(ranNum)
{
case LEFT: //左移
if(zero[1]+1<boxTemp[zero[0]].length)
{
temp = boxTemp[zero[0]][zero[1]+1];
boxTemp[zero[0]][zero[1]+1] = " ";
}
break;
case UP: //上移
if(zero[0]+1<boxTemp.length)
{
temp = boxTemp[zero[0]+1][zero[1]];
boxTemp[zero[0]+1][zero[1]] = " ";
}
break;
case RIGHT: //右移
if(zero[1]-1 >= 0)
{
temp = boxTemp[zero[0]][zero[1]-1];
boxTemp[zero[0]][zero[1]-1] = " ";
}
break;
case DOWN: //下移
if(zero[0]-1 >= 0)
{
temp = boxTemp[zero[0]-1][zero[1]];
boxTemp[zero[0]-1][zero[1]] = " ";
}
break;
default:
}
boxTemp[zero[0]][zero[1]] = temp;
}
return boxTemp;
}
//取得0的位置
private int [] getZero(String [][] boxArr)
{
int location[] = new int[2];
for(int r = 0; r < boxArr.length; r++)
{
for(int c = 0; c < boxArr[r].length; c++)
{
//取得數字0的位置
if(boxArr[r][c].equals(" "))
{
location[0] = r; //" "的x位置
location[1] = c; //" "的y位置
}
}
}
return location;
}
public Piece()
{
super("數字拼圖");
Container c = getContentPane();
c = this.getContentPane();
jmb = new JMenuBar();
this.setJMenuBar(jmb); //加入工具列
//遊戲的選擇項目
jmb.add(game);
gm[0] = new JMenuItem("新局");
gm[1] = new JMenuItem("放棄");
gm[2] = new JMenuItem("結束遊戲");
game.add(gm[0]);
game.add(gm[1]);
game.addSeparator();
game.add(gm[2]);
gm[1].setEnabled(false);
//數字的排為3*3
c.setLayout(new GridLayout(3,3));
for(int i = 0; i < jl.length; i++)
{
jl[i] = new JLabel(" "+box[i/box.length][i%box.length]);
jl[i].setFont(new Font("Serif",Font.BOLD,40));
c.add(jl[i]);
}
//設定視窗
setSize(200,200);
setLocation(300,250);
setResizable(false);//視窗放大按鈕無效
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//註冊功能表單傾聽者
for(int m=0;m<gm.length;m++)
gm[m].addActionListener(bh);
//註冊鍵盤傾聽者
this.addKeyListener(kl);
}
//鍵盤事件處理
private class keyLis implements KeyListener
{
public void keyPressed(KeyEvent e)
{
if(isStart == true)
{
String temp = " ";
int [] zero = null;
zero = getZero(box); //取得" "的位置
switch(e.getKeyCode())
{
case LEFT: //按左鍵
if(zero[1]+1<box[zero[0]].length)
{
temp = box[zero[0]][zero[1]+1];
box[zero[0]][zero[1]+1] = " ";
}
break;
case UP: //按上鍵
if(zero[0]+1<box.length)
{
temp = box[zero[0]+1][zero[1]];
box[zero[0]+1][zero[1]] = " ";
}
break;
case RIGHT: //按右鍵
if(zero[1]-1 >= 0)
{
temp = box[zero[0]][zero[1]-1];
box[zero[0]][zero[1]-1] = " ";
}
break;
case DOWN: //按下鍵
if(zero[0]-1 >= 0)
{
temp = box[zero[0]-1][zero[1]];
box[zero[0]-1][zero[1]] = " ";
}
break;
default:
}
box[zero[0]][zero[1]] = temp;
//更新數字顯示的位置
for(int i=0; i< jl.length; i++)
jl[i].setText(" "+box[i/box.length][i%box.length]);
//判斷是否過關
if(box[0][0].equals("1") && box[0][1].equals("2") &&
box[0][2].equals("3") && box[1][0].equals("4") &&
box[1][1].equals("5") && box[1][2].equals("6") &&
box[2][0].equals("7") && box[2][1].equals("8") &&
box[2][2].equals(" ")
)
{
JOptionPane.showMessageDialog(null, "過關了!!", "訊息",
JOptionPane.INFORMATION_MESSAGE);
//判斷是否再玩一次
if(JOptionPane.showConfirmDialog(null, "再玩一次?", "訊息",
JOptionPane.YES_NO_OPTION) == 0
)
{
box = init();
for(int i=0; i< jl.length; i++)//更新數字顯示的位置
jl[i].setText(" "+box[i/box.length][i%box.length]);
}
else System.exit(0); //結束遊戲
}
}
}
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
}
//功能表單事件處理
private class ButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource() == gm[0]) //新局
{
box = init();
for(int i=0; i< jl.length; i++)//更新數字顯示的位置
jl[i].setText(" "+box[i/box.length][i%box.length]);
isStart = true;
gm[1].setEnabled(true);
}
else if(ae.getSource() == gm[1]) //放棄
{
isStart = false;
for(int i=0; i< jl.length; i++)//初始化數字顯示的位置
{
box[i/box.length][i%box.length] = Integer.toString(i+1);
if(box[i/box.length][i%box.length].equals("9")) box[i/box.length][i%box.length] = " ";
jl[i].setText(" "+box[i/box.length][i%box.length]);
}
}
else if(ae.getSource() == gm[2]) //結束遊戲
{
System.exit(0);
}
}
}
public static void main(String [] args)
{
new Piece();
}
}
2.完成圖
按鈕改成圖片
1.程式碼
import java.awt.*;
import javax.swing.*;
public class Test extends JFrame {
public Test() {
super("Test");
Container container = getContentPane();
container.setLayout(new FlowLayout());
JPanel grid_panel = new JPanel(new GridLayout(3, 3));
JButton[] buttons = new JButton[9];
ImageIcon image = new ImageIcon("C360_2013-06-23-15-43-36-777.jpg");
Dimension dimension = new Dimension(image.getIconWidth(), image.getIconHeight());
for (int i = 0; i < buttons.length; i++) {
buttons[i] = new JButton(image);
buttons[i].setPreferredSize(dimension);
buttons[i].setMaximumSize(dimension);
buttons[i].setMinimumSize(dimension);
grid_panel.add(buttons[i]);
}
container.add(grid_panel);
setSize(500, 500);
setVisible(true);
}
public static void main(String[] args) {
Test app = new Test();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
2.完成圖
import java.awt.*;
import javax.swing.*;
public class Test extends JFrame {
public Test() {
super("Test");
Container container = getContentPane();
container.setLayout(new FlowLayout());
JPanel grid_panel = new JPanel(new GridLayout(3, 3));
JButton[] buttons = new JButton[9];
ImageIcon image = new ImageIcon("C360_2013-06-23-15-43-36-777.jpg");
Dimension dimension = new Dimension(image.getIconWidth(), image.getIconHeight());
for (int i = 0; i < buttons.length; i++) {
buttons[i] = new JButton(image);
buttons[i].setPreferredSize(dimension);
buttons[i].setMaximumSize(dimension);
buttons[i].setMinimumSize(dimension);
grid_panel.add(buttons[i]);
}
container.add(grid_panel);
setSize(500, 500);
setVisible(true);
}
public static void main(String[] args) {
Test app = new Test();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
2.完成圖
按鈕照數字走
1.程式碼
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator2 implements ActionListener {
public static void main(String[] args) {
new Calculator2();
}
public Calculator2() {
JFrame window=new JFrame("Calculator2");
window.setDefaultLookAndFeelDecorated(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new GridLayout(3,3));
JPanel jplPanel = new JPanel();
jplPanel.setLayout(new GridLayout(3,3));
JButton button[]=new JButton[10];
for (int i = 1; i <= 9; i++)
{
button[i] = new JButton();
button[i].setSize(50,50);
button[i].setText(Integer.toString(i));
button[i].addActionListener(this);
jplPanel.add(button[i]);
}
button[1].setActionCommand("d1");
button[2].setActionCommand("d2");
button[3].setActionCommand("d3");
button[4].setActionCommand("d4");
button[5].setActionCommand("d5");
button[6].setActionCommand("d6");
button[7].setActionCommand("d7");
button[8].setActionCommand("d8");
button[9].setActionCommand("d9");
window.getContentPane().add(jplPanel, BorderLayout.CENTER);
window.setSize(500,500);
window.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
String cmd2 = e.getActionCommand();
String cmd3 = e.getActionCommand();
String cmd4 = e.getActionCommand();
String cmd5 = e.getActionCommand();
String cmd6 = e.getActionCommand();
String cmd7 = e.getActionCommand();
String cmd8 = e.getActionCommand();
String cmd9 = e.getActionCommand();
if (cmd == "d1") {
System.out.println("1");
}
if (cmd2 == "d2") {
System.out.println("2");
}
if (cmd3 == "d3") {
System.out.println("3");
}
if (cmd4 == "d4") {
System.out.println("4");
}
if (cmd5 == "d5") {
System.out.println("5");
}
if (cmd6 == "d6") {
System.out.println("6");
}
if (cmd7 == "d7") {
System.out.println("7");
}
if (cmd8 == "d8") {
System.out.println("8");
}
if (cmd9 == "d9") {
System.out.println("9");
}
}
}
class AdapterDemo extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
2.完成圖
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator2 implements ActionListener {
public static void main(String[] args) {
new Calculator2();
}
public Calculator2() {
JFrame window=new JFrame("Calculator2");
window.setDefaultLookAndFeelDecorated(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new GridLayout(3,3));
JPanel jplPanel = new JPanel();
jplPanel.setLayout(new GridLayout(3,3));
JButton button[]=new JButton[10];
for (int i = 1; i <= 9; i++)
{
button[i] = new JButton();
button[i].setSize(50,50);
button[i].setText(Integer.toString(i));
button[i].addActionListener(this);
jplPanel.add(button[i]);
}
button[1].setActionCommand("d1");
button[2].setActionCommand("d2");
button[3].setActionCommand("d3");
button[4].setActionCommand("d4");
button[5].setActionCommand("d5");
button[6].setActionCommand("d6");
button[7].setActionCommand("d7");
button[8].setActionCommand("d8");
button[9].setActionCommand("d9");
window.getContentPane().add(jplPanel, BorderLayout.CENTER);
window.setSize(500,500);
window.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
String cmd2 = e.getActionCommand();
String cmd3 = e.getActionCommand();
String cmd4 = e.getActionCommand();
String cmd5 = e.getActionCommand();
String cmd6 = e.getActionCommand();
String cmd7 = e.getActionCommand();
String cmd8 = e.getActionCommand();
String cmd9 = e.getActionCommand();
if (cmd == "d1") {
System.out.println("1");
}
if (cmd2 == "d2") {
System.out.println("2");
}
if (cmd3 == "d3") {
System.out.println("3");
}
if (cmd4 == "d4") {
System.out.println("4");
}
if (cmd5 == "d5") {
System.out.println("5");
}
if (cmd6 == "d6") {
System.out.println("6");
}
if (cmd7 == "d7") {
System.out.println("7");
}
if (cmd8 == "d8") {
System.out.println("8");
}
if (cmd9 == "d9") {
System.out.println("9");
}
}
}
class AdapterDemo extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
2.完成圖
2015年4月18日 星期六
踩地雷
1.程式碼
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Game extends JFrame implements ActionListener{
static int mapHeight = 9, mapWidth = 9, bombNum = 10;
static int frameWidth = 400, frameHeight = 400;
private boolean[][] isTurned;
private boolean gameOver;
private boolean gameRunning;
private int[][] aroundBombNum;
private boolean[][] map;//炸彈or空地
private boolean[][] isPressed;
private JButton[][] buttons;
private JPanel centerButtonPanel;
private JLabel gameMessage;
public Game()
{
super("踩地雷");
setSize(frameWidth, frameHeight);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout());
gameMessage = new JLabel("遊戲進行中");//訊息顯示
add(gameMessage, BorderLayout.NORTH);
centerButtonPanel = new JPanel();
centerButtonPanel.setLayout(new GridLayout(mapHeight, mapWidth));
buttons = new JButton[mapHeight][mapWidth];
//按鈕
for(int i=0; i<mapHeight; i++)
for(int j=0; j<mapWidth; j++)
{
buttons[i][j] = new JButton();
buttons[i][j].addActionListener(this);
buttons[i][j].setBackground(Color.WHITE);
buttons[i][j].setActionCommand(i+" "+j);
centerButtonPanel.add(buttons[i][j]);
}
add(centerButtonPanel, BorderLayout.CENTER);
JButton re = new JButton("重玩");
re.setActionCommand("regame");
re.addActionListener(this);
add(re, BorderLayout.SOUTH);
gameRunning = false;
}
public void resetGame(int sx,int sy)//清空地圖、隨機地圖、重設按鈕文字
{
gameOver = false;
aroundBombNum = new int[mapHeight][mapWidth];//清空地圖
map = new boolean[mapHeight][mapWidth];
isPressed = new boolean[mapHeight][mapWidth];
isTurned = new boolean[mapHeight][mapWidth];
int bombCount = 0;
while(bombCount < bombNum)
{
int x = (int)(Math.random()*mapHeight);
int y = (int)(Math.random()*mapWidth);
if(sx!=x|sy!=y)
if(!map[x][y])//沒炸彈
{
bombCount++;//放了炸彈
map[x][y] = true;
//向周圍宣布有炸彈
for(int i=x-1; i<=x+1; i++)
for(int j = y-1; j<=y+1; j++)
{
if(i>=0&&i<mapHeight&&j>=0&&j<mapWidth)
aroundBombNum[i][j]++;
}
}
}
System.out.println("地圖建置成功");
printMap();
}
private void clean()
{
for(int i=0; i<mapHeight; i++)
for(int j=0; j<mapWidth; j++)
{
buttons[i][j].setText("");
buttons[i][j].setBackground(Color.WHITE);
}
}
private void printMap()
{
System.out.println("Bombs");
for(int i=0; i<mapHeight; i++)
{
for(int j=0; j<mapWidth; j++)
{
if(map[i][j])
System.out.print("*");
else
System.out.print("_");
}
System.out.println();
}
System.out.println("Arounds");
for(int i=0; i<mapHeight; i++)
{
for(int j=0; j<mapWidth; j++)
{
System.out.print(aroundBombNum[i][j]);
}
System.out.println();
}
}
public void freshMessage(String newMessage)
{
System.out.println(newMessage);
gameMessage.setText(newMessage);
}
public void click(int x, int y)//炸彈: 爆炸| 土地 0擴散 1~8不擴散
{
if(map[x][y])//炸彈
{
freshMessage("踩到地雷! 爆炸!");
buttons[x][y].setBackground(Color.RED);
gameOver = true;
return ;
}
else
if(aroundBombNum[x][y]!=0)
{
turn(x,y);
}
else
{
int[][] direct = {{-1,0},{0,-1},{1,0},{0,1},{-1,-1},{1,1},{-1,1},{1,-1}};//上 左 下 右 左上 左下 右上 右下
int[] queue_x = new int[mapHeight*mapWidth];
int[] queue_y = new int[mapHeight*mapWidth];
int pop = 0, push = 0;
queue_x[push] = x;//填入第一個
queue_y[push] = y;
push++;
while(pop < push)
{
int tx = queue_x[pop];
int ty = queue_y[pop];
//如果 此格是0就繼續擴散
if(aroundBombNum[tx][ty]==0)
for(int s=0; s<8; s++)
{
int fx = tx+direct[s][0];
int fy = ty+direct[s][1];
boolean spread = false;
if(inRange(fx,fy)&&!isTurned[fx][fy])
{
isTurned[fx][fy] = true;
queue_x[push] = fx;
queue_y[push] = fy;
push++;
}
}
pop++;
/*System.out.println("Pop"+pop);
for(int i=0; i<push; i++)
{
System.out.print(" "+"["+queue_x[i]+"]"+ "["+queue_y[i]+"]");
}
System.out.println();*/
}
for(int i=0; i<push; i++)
turn(queue_x[i],queue_y[i]);
}
}
private static boolean inRange(int x, int y)
{
return (x>=0&&x<mapHeight&&y>=0&&y<mapWidth);
}
public void turn(int x, int y)//翻開
{
buttons[x][y].setBackground(Color.LIGHT_GRAY);
if(aroundBombNum[x][y]>0)
buttons[x][y].setText(Integer.toString(aroundBombNum[x][y]));
isTurned[x][y] = true;
isPressed[x][y] = true;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String command =e.getActionCommand();
if(command.equals("regame"))
{
clean();
gameRunning = false;
freshMessage("遊戲進行中");
}
else
{
String[] press = command.split(" ");
int x = Integer.parseInt(press[0]);
int y = Integer.parseInt(press[1]);
if(!gameRunning)
{
resetGame(x,y);
gameRunning = true;
}
if(!isPressed[x][y]&&!gameOver)
{
System.out.println("Invoke click "+x+" "+y);
click(x,y);
isPressed[x][y] = true;
}
}
}
public static void main(String[] args)
{
Game frame = new Game();
frame.setVisible(true);
}
}
2.
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Game extends JFrame implements ActionListener{
static int mapHeight = 9, mapWidth = 9, bombNum = 10;
static int frameWidth = 400, frameHeight = 400;
private boolean[][] isTurned;
private boolean gameOver;
private boolean gameRunning;
private int[][] aroundBombNum;
private boolean[][] map;//炸彈or空地
private boolean[][] isPressed;
private JButton[][] buttons;
private JPanel centerButtonPanel;
private JLabel gameMessage;
public Game()
{
super("踩地雷");
setSize(frameWidth, frameHeight);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout());
gameMessage = new JLabel("遊戲進行中");//訊息顯示
add(gameMessage, BorderLayout.NORTH);
centerButtonPanel = new JPanel();
centerButtonPanel.setLayout(new GridLayout(mapHeight, mapWidth));
buttons = new JButton[mapHeight][mapWidth];
//按鈕
for(int i=0; i<mapHeight; i++)
for(int j=0; j<mapWidth; j++)
{
buttons[i][j] = new JButton();
buttons[i][j].addActionListener(this);
buttons[i][j].setBackground(Color.WHITE);
buttons[i][j].setActionCommand(i+" "+j);
centerButtonPanel.add(buttons[i][j]);
}
add(centerButtonPanel, BorderLayout.CENTER);
JButton re = new JButton("重玩");
re.setActionCommand("regame");
re.addActionListener(this);
add(re, BorderLayout.SOUTH);
gameRunning = false;
}
public void resetGame(int sx,int sy)//清空地圖、隨機地圖、重設按鈕文字
{
gameOver = false;
aroundBombNum = new int[mapHeight][mapWidth];//清空地圖
map = new boolean[mapHeight][mapWidth];
isPressed = new boolean[mapHeight][mapWidth];
isTurned = new boolean[mapHeight][mapWidth];
int bombCount = 0;
while(bombCount < bombNum)
{
int x = (int)(Math.random()*mapHeight);
int y = (int)(Math.random()*mapWidth);
if(sx!=x|sy!=y)
if(!map[x][y])//沒炸彈
{
bombCount++;//放了炸彈
map[x][y] = true;
//向周圍宣布有炸彈
for(int i=x-1; i<=x+1; i++)
for(int j = y-1; j<=y+1; j++)
{
if(i>=0&&i<mapHeight&&j>=0&&j<mapWidth)
aroundBombNum[i][j]++;
}
}
}
System.out.println("地圖建置成功");
printMap();
}
private void clean()
{
for(int i=0; i<mapHeight; i++)
for(int j=0; j<mapWidth; j++)
{
buttons[i][j].setText("");
buttons[i][j].setBackground(Color.WHITE);
}
}
private void printMap()
{
System.out.println("Bombs");
for(int i=0; i<mapHeight; i++)
{
for(int j=0; j<mapWidth; j++)
{
if(map[i][j])
System.out.print("*");
else
System.out.print("_");
}
System.out.println();
}
System.out.println("Arounds");
for(int i=0; i<mapHeight; i++)
{
for(int j=0; j<mapWidth; j++)
{
System.out.print(aroundBombNum[i][j]);
}
System.out.println();
}
}
public void freshMessage(String newMessage)
{
System.out.println(newMessage);
gameMessage.setText(newMessage);
}
public void click(int x, int y)//炸彈: 爆炸| 土地 0擴散 1~8不擴散
{
if(map[x][y])//炸彈
{
freshMessage("踩到地雷! 爆炸!");
buttons[x][y].setBackground(Color.RED);
gameOver = true;
return ;
}
else
if(aroundBombNum[x][y]!=0)
{
turn(x,y);
}
else
{
int[][] direct = {{-1,0},{0,-1},{1,0},{0,1},{-1,-1},{1,1},{-1,1},{1,-1}};//上 左 下 右 左上 左下 右上 右下
int[] queue_x = new int[mapHeight*mapWidth];
int[] queue_y = new int[mapHeight*mapWidth];
int pop = 0, push = 0;
queue_x[push] = x;//填入第一個
queue_y[push] = y;
push++;
while(pop < push)
{
int tx = queue_x[pop];
int ty = queue_y[pop];
//如果 此格是0就繼續擴散
if(aroundBombNum[tx][ty]==0)
for(int s=0; s<8; s++)
{
int fx = tx+direct[s][0];
int fy = ty+direct[s][1];
boolean spread = false;
if(inRange(fx,fy)&&!isTurned[fx][fy])
{
isTurned[fx][fy] = true;
queue_x[push] = fx;
queue_y[push] = fy;
push++;
}
}
pop++;
/*System.out.println("Pop"+pop);
for(int i=0; i<push; i++)
{
System.out.print(" "+"["+queue_x[i]+"]"+ "["+queue_y[i]+"]");
}
System.out.println();*/
}
for(int i=0; i<push; i++)
turn(queue_x[i],queue_y[i]);
}
}
private static boolean inRange(int x, int y)
{
return (x>=0&&x<mapHeight&&y>=0&&y<mapWidth);
}
public void turn(int x, int y)//翻開
{
buttons[x][y].setBackground(Color.LIGHT_GRAY);
if(aroundBombNum[x][y]>0)
buttons[x][y].setText(Integer.toString(aroundBombNum[x][y]));
isTurned[x][y] = true;
isPressed[x][y] = true;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String command =e.getActionCommand();
if(command.equals("regame"))
{
clean();
gameRunning = false;
freshMessage("遊戲進行中");
}
else
{
String[] press = command.split(" ");
int x = Integer.parseInt(press[0]);
int y = Integer.parseInt(press[1]);
if(!gameRunning)
{
resetGame(x,y);
gameRunning = true;
}
if(!isPressed[x][y]&&!gameOver)
{
System.out.println("Invoke click "+x+" "+y);
click(x,y);
isPressed[x][y] = true;
}
}
}
public static void main(String[] args)
{
Game frame = new Game();
frame.setVisible(true);
}
}
2.
2015年4月17日 星期五
單個陣列
1.程式碼
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator extends JFrame{ public static void main(String[]args){ JFrame window=new JFrame("Calculator"); JPanel jplPanel = new JPanel(); JButton button[]=new JButton[10]; for(int i=0;i<button.length;i++){ button[i] = new JButton(); button[i].setSize(50,50); button[i].setText(Integer.toString(i+1)); jplPanel.add(button[i]); } window.getContentPane().add(jplPanel, BorderLayout.CENTER); window.setSize(500,500); window.setVisible(true); }}
2.完成圖
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator extends JFrame{ public static void main(String[]args){ JFrame window=new JFrame("Calculator"); JPanel jplPanel = new JPanel(); JButton button[]=new JButton[10]; for(int i=0;i<button.length;i++){ button[i] = new JButton(); button[i].setSize(50,50); button[i].setText(Integer.toString(i+1)); jplPanel.add(button[i]); } window.getContentPane().add(jplPanel, BorderLayout.CENTER); window.setSize(500,500); window.setVisible(true); }}
2.完成圖
按鈕 YES
1.程式碼
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator2 implements ActionListener {
public static void main(String[] args) {
new Calculator2();
}
public Calculator2() {
JFrame window=new JFrame("Calculator2");
window.setDefaultLookAndFeelDecorated(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new GridLayout(3,3));
JPanel jplPanel = new JPanel();
jplPanel.setLayout(new GridLayout(3,3));
JButton button[]=new JButton[10];
for (int i = 1; i <= 9; i++)
{
button[i] = new JButton();
button[i].setSize(50,50);
button[i].setText(Integer.toString(i));
button[i].setActionCommand("d1");
button[i].addActionListener(this);
jplPanel.add(button[i]);
}
window.getContentPane().add(jplPanel, BorderLayout.CENTER);
window.setSize(500,500);
window.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if (cmd == "d1") {
System.out.println("Yes....");
}
}
}
class AdapterDemo extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
2.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator2 implements ActionListener {
public static void main(String[] args) {
new Calculator2();
}
public Calculator2() {
JFrame window=new JFrame("Calculator2");
window.setDefaultLookAndFeelDecorated(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new GridLayout(3,3));
JPanel jplPanel = new JPanel();
jplPanel.setLayout(new GridLayout(3,3));
JButton button[]=new JButton[10];
for (int i = 1; i <= 9; i++)
{
button[i] = new JButton();
button[i].setSize(50,50);
button[i].setText(Integer.toString(i));
button[i].setActionCommand("d1");
button[i].addActionListener(this);
jplPanel.add(button[i]);
}
window.getContentPane().add(jplPanel, BorderLayout.CENTER);
window.setSize(500,500);
window.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if (cmd == "d1") {
System.out.println("Yes....");
}
}
}
class AdapterDemo extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
2.
訂閱:
文章 (Atom)


















