📄 pilecanvas.java
字号:
// CS 582 - Fall 1996 - OSU// Jean-Guy Spetonimport java.awt.*;// Risk-specific widget to display Cards in a Pile.class PileCanvas extends Canvas{ // The maximum number of "top" cards to display. private final static int MAX_CARDS_SHOWN = 5; private Risk risk; public PileCanvas(Risk risk) { this.risk = risk; setBackground(Color.white); } // AWT methods. // Toggle a card's selected state, unless doing so would result in // more than 3 selected cards. public boolean mouseDown(Event event, int x, int y) { int i = x / (size().width / MAX_CARDS_SHOWN); Pile pile = risk.getCurrentPlayer().getPile(); int numSelected = 0; for (int j = 0; j < MAX_CARDS_SHOWN; j++) { if (j < pile.size()) { if (pile.cardAt(j).isSelected()) { numSelected++; } } } if (i < pile.size()) { if (pile.cardAt(i).isSelected() || (numSelected < 3)) { pile.cardAt(i).toggleSelected(); repaint(); } } risk.checkCardSet(); return true; } public void paint(Graphics g) { Pile pile = risk.getCurrentPlayer().getPile(); Dimension d = size(); int cardWidth = d.width / MAX_CARDS_SHOWN; int cardHeight = d.height - 1; for (int i = 0; i < MAX_CARDS_SHOWN; i++) { if (i == pile.size()) { break; } Card c = pile.cardAt(i); c.paint(g, cardWidth * i, 0, cardWidth, cardHeight); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -