今天星期四,参加培训的第十四天,像往常一样,早上起床吃饭,吃的肯德基,一个蛋,然后开始看书,看的Swing的内容,jframe框架,jpanel面板,jbutton按钮,还有布局管理器,流局,flowlayout, 网格布局gridlayout,五区布局borderlayout.
public JframeTest() {
LayoutManager layoutManager = new FlowLayout();
setLayout(new FlowLayout(FlowLayout.LEFT,10,20));
// setLayout(new FlowLayout(FlowLayout.RIGHT,0,0));
add(new JLabel("first Name"));
add(new JTextField(8));
add(new JLabel("MI"));
add(new JTextField(1));
add(new JLabel("last Name"));
add(new JTextField(8));
}
public JframeTest() {
setLayout(new GridLayout(6, 2,5,5));//默认根据行数匹配列数,没有行数,根据列数匹配行数 (风格)
add(new JLabel("first Name"));
add(new JTextField(8));
add(new JLabel("MI"));
add(new JTextField(1));
add(new JLabel("last Name"));
add(new JTextField(8));
}
public JframeTest() {
setLayout(new BorderLayout(5,10));//默认根据行数匹配列数,没有行数,根据列数匹配行数 (风格)
add(new JButton("East"),BorderLayout.EAST);
add(new JButton("South"),BorderLayout.SOUTH);
add(new JButton("West"),BorderLayout.WEST);
add(new JButton("North"),BorderLayout.NORTH);
add(new JButton("Center"),BorderLayout.CENTER);
add(new JTextField(8));
}
设置图标图片:
frame.setIconImage(Toolkit.getDefaultToolkit().createImage("src/image/logo3.jpg"));
设置背景图片:
public void init() {
ImageIcon img = new ImageIcon("src/image/他的妃.jpg");
JLabel j = new JLabel(img);
// System.out.println(Integer.MIN_VALUE);
// System.out.println(this.getLayeredPane().getWidth());
this.getLayeredPane().add(j, new Integer(Integer.MIN_VALUE));
j.setBounds(0, 0, (int)this.getSize().getWidth(),(int)this.getSize().getHeight());
Container container = this.getContentPane();
((JPanel) container).setOpaque(false);
}
至于怎么去让背景随着窗口变大变小还没做出来,好像要用什么repaint ,还有触发事件什么的,一直在找如何实现,但是没有成功。算了,明天再说了,明天应该也做不到,那就再说了,反正也只能先这样了,
然后,linkedlist队列,先进先出,栈后进先出,linkledist .pop 取出第一个元素并且删除。
今天 ,讲的是面向对象,继承,多态,封装,还有final static 的用法, .equals的重写,方法的重载与重写,还有别的什么,忘记了,static{} 静态代码块,类加载的时候执行一次,且只执行一次,然后晚上做了斗地主,没做完,很复杂就对了,代码如下:
- public class Operator {
- public static void main(String[] args) {
- List<Poker> pokerList = new ArrayList<Poker>();
- pokerList = createPokers();
- // for(Poker poker:pokerList) {
- // System.out.println(poker.getNumber());
- // System.out.println(poker.getCorlor());
- // }
- Farmer farmer1 = new Farmer();
- Farmer farmer2 = new Farmer();
- Landlord landlord = new Landlord();
- givePokers(pokerList,farmer1,farmer2,landlord);
- boolean A = (farmer1.getPokerList().size()==0);
- boolean B = (farmer2.getPokerList().size()==0);
- boolean C = (landlord.getPokerList().size()==0);
- System.out.println(A);
- System.out.println(B);
- System.out.println(C);
- while(!A&&!B&&!C) {
- landlordPopPokers(landlord);
- A = (landlord.getPokerList().size()==0);
- if(A) {
- System.out.println("地主胜!!!");
- break;
- }
- farmer1PopPokers(farmer1);
- B = (farmer1.getPokerList().size()==0);
- if(B) {
- System.out.println("农民胜!!!");
- break;
- }
- farmer2PopPokers(farmer2);
- C = (farmer2.getPokerList().size()==0);
- if(C) {
- System.out.println("农民胜!!!");
- break;
- }
- }
- }
- /**
- * 创建一幅扑克牌
- *
- * @return
- */
- public static List<Poker> createPokers() {
- List<Poker> pokerList = new ArrayList<Poker>();
- for (int i = 1; i < 15; i++) {
- for (int k = 1; k < 5; k++) {
- if (i == 14 && k == 3) {
- break;
- }
- Poker poker = new Poker(i, k);
- pokerList.add(poker);
- }
- }
- return pokerList;
- }
- /**
- * 发牌
- * @param pokerList
- * @param farmer1
- * @param farmer2
- * @param landlord
- */
- public static void givePokers(List<Poker> pokerList,Farmer farmer1,Farmer farmer2,Landlord landlord) {
- HashSet<Integer> number = new HashSet<Integer>();
- // int[] landlord = new int[20];
- // int[] farmer1 = new int[17];
- // int[] farmer2 = new int[17];
- // List<Poker> landPokerList = new ArrayList<Poker>();
- // List<Poker> farmPokerList1 = new ArrayList<Poker>();
- // List<Poker> farmPokerList2 = new ArrayList<Poker>();
- while (number.size() < 54) {
- int oldSize = number.size();
- int temp = (int) (Math.random() * 54);
- number.add(temp);
- int currentSize = number.size();
- if(currentSize<=20&&(oldSize<currentSize)) {
- // landlord[oldSize]=temp;
- System.out.println(temp);
- landlord.getPokerList().add(pokerList.get(temp));
- } else if(currentSize<=37&&(oldSize<currentSize)){
- // farmer1[oldSize]=temp;
- System.out.println(temp);
- farmer1.getPokerList().add(pokerList.get(temp));
- } else if(currentSize<=54&&(oldSize<currentSize)) {
- System.out.println(temp);
- farmer2.getPokerList().add(pokerList.get(temp));
- }
- // System.out.println(number.size());
- }
- farmer1.getPokerList().sort(new Comparator<Poker> () {
- @Override
- public int compare(Poker o1, Poker o2) {
- // TODO Auto-generated method stub
- return o1.getId()-o2.getId();
- }
- });
- farmer2.getPokerList().sort(new Comparator<Poker> () {
- @Override
- public int compare(Poker o1, Poker o2) {
- // TODO Auto-generated method stub
- return o1.getId()-o2.getId();
- }
- });
- landlord.getPokerList().sort(new Comparator<Poker> () {
- @Override
- public int compare(Poker o1, Poker o2) {
- // TODO Auto-generated method stub
- return o1.getId()-o2.getId();
- }
- });
- // for (int a : number) {
- // System.out.println(a);
- // }
- }
- /**
- * 地主出牌
- * @param landlord
- */
- public static List<Poker> landlordPopPokers(Landlord landlord) {
- System.out.println("地主你的牌为:");
- int currentSize = landlord.getPokerList().size();
- for(int i = 0;i<currentSize;i++) {
- Poker poker = landlord.getPokerList().get(i);
- System.out.println((i+1)+":"+poker.getCorlor()+poker.getNumber());
- }
- System.out.println("请选择你要出牌的序号,并以0结束");
- Scanner input = new Scanner(System.in);
- List<Poker> currentList = new ArrayList<Poker>();
- while(true) {
- int chooseNum = input.nextInt();
- if(chooseNum==0) {
- break;
- }
- currentList.add(landlord.getPokerList().get(chooseNum-1));
- }
- landlord.getPokerList().removeAll(currentList);
- return currentList;
- }
- /**
- * 农民1出牌
- * @param farmer1
- */
- public static List<Poker> farmer1PopPokers(Farmer farmer1) {
- System.out.println("农民一号你的牌为:");
- int currentSize = farmer1.getPokerList().size();
- for(int i = 0;i<currentSize;i++) {
- Poker poker = farmer1.getPokerList().get(i);
- System.out.println((i+1)+":"+poker.getCorlor()+poker.getNumber());
- }
- System.out.println("请选择你要出牌的序号,并以0结束");
- Scanner input = new Scanner(System.in);
- List<Poker> currentList = new ArrayList<Poker>();
- while(true) {
- int chooseNum = input.nextInt();
- if(chooseNum==0) {
- break;
- }
- currentList.add(farmer1.getPokerList().get(chooseNum));
- }
- farmer1.getPokerList().removeAll(currentList);
- return currentList;
- }
- /**
- * 农民二号出牌
- * @param farmer2
- */
- public static List<Poker> farmer2PopPokers(Farmer farmer2) {
- System.out.println("农民二号你的牌为:");
- int currentSize = farmer2.getPokerList().size();
- for(int i = 0;i<currentSize;i++) {
- Poker poker = farmer2.getPokerList().get(i);
- System.out.println((i+1)+":"+poker.getCorlor()+poker.getNumber());
- }
- System.out.println("请选择你要出牌的序号,并以0结束");
- Scanner input = new Scanner(System.in);
- List<Poker> currentList = new ArrayList<Poker>();
- while(true) {
- int chooseNum = input.nextInt();
- if(chooseNum==0) {
- break;
- }
- currentList.add(farmer2.getPokerList().get(chooseNum));
- }
- farmer2.getPokerList().removeAll(currentList);
- return currentList;
- }
Poker构造方法:
public Poker(Integer i, Integer j) {
if(i==14&&j==1) {
number="joker";
corlor="black";
id=i;
return;
}
if(i==14&&j==2) {
number="joker";
corlor="red";
id=i;
return;
}
if (i == 1) {
number = "A";
id=12;
} else if (i == 11) {
number = "J";
id=9;
} else if (i == 12) {
number="Q";
id=10;
} else if( i==13) {
number="K";
id=11;
}else {
if(i==2) {
id=13;
}else {
id=i-2;
}
number=i.toString();
}
if(j==1) {
corlor="black";
}
if(j==2) {
corlor="red";
}
if(j==3) {
corlor="plum";
}
if(j==4) {
corlor="square";
}
总之,很是渣就对了,无所谓了,就这样吧,越来越不像日记了,为什么这么说呢,因为代码好多,字打的很少,算了也无所谓,嗯,是这样的,没别的了,好,结束。