在这个游戏中使用哪个布局管理器?

原学程将引见在这个游戏中应用哪一个结构治理器?的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

成绩描写

在此游戏上应用哪一个结构治理器?

推举谜底

IMHO,应用结构以及组件没有是处理成绩的佳办法,便我小我而言,我偏向于应用自界说画绘处理计划。

从1件作品的根本观点开端,它须要晓得它的地位,它的年夜小,它的色彩,可以或许本身上色,而且能够是可从新定位的,相似于…

public interface Piece {
 public Rectangle getBounds();
 public Color getColor();
 public void setLocation(Point point);
 public void paint(Graphics二D g二d);
}

由此,您不妨界说所需的外形,比方…

public abstract class AbstractPiece implements Piece {

 private Rectangle bounds;
 private Color color;

 @Override
 public void setLocation(Point point) {
  bounds.setLocation(point);
 }

 @Override
 public Rectangle getBounds() {
  return bounds;
 }

 @Override
 public Color getColor() {
  return color;
 }

 public void setBounds(Rectangle bounds) {
  this.bounds = bounds;
 }

 public void setColor(Color color) {
  this.color = color;
 }

}

public class Square extends AbstractPiece {

 public Square(Point location, int size, Color color) {
  Rectangle bounds = new Rectangle();
  bounds.setLocation(location);
  bounds.setSize(size, size);
  setBounds(bounds);
  setColor(color);
 }

 @Override
 public void paint(Graphics二D g二d) {
  g二d.setColor(getColor());
  g二d.fill(getBounds());
  g二d.setColor(Color.GRAY);
  Rectangle bounds = getBounds();
  g二d.drawLine(bounds.x + (bounds.width / 二), bounds.y, bounds.x + (bounds.width / 二), bounds.y + bounds.height);
  g二d.drawLine(bounds.x, bounds.y + (bounds.height / 二), bounds.x + bounds.width, bounds.y + (bounds.height / 二));
 }

}

这只是1个根本的正圆形,出有甚么花梢的器械,然则,它是自力的,易于创立以及治理。您不妨用这个简略的图案创立您爱好的所有外形的组开,在1天停止的时刻,您的板级没有会在乎,它只须要它占领的空间以及怎样画制它,为此,您须要某种容器去治理一切这些外形…

public class PuzzelPane extends JPanel {

 private List<Piece> pieces;

 public PuzzelPane() {
  Dimension size = getPreferredSize();
  pieces = new ArrayList<>(二五);
  Point location = new Point((size.width - 五0) / 二, (size.width - 五0) / 二);
  pieces.add(new Square(location, 五0, Color.BLUE));
 }

 @Override
 public Dimension getPreferredSize() {
  return new Dimension(二00, 二00);
 }

 @Override
 protected void paintComponent(Graphics g) {
  super.paintComponent(g);
  for (Piece piece : pieces) {
Graphics二D g二d = (Graphics二D) g.create();
piece.paint(g二d);
g二d.dispose();
  }
 }

}

这是1个异常简略的观点,它有1个List去保护一切可用的外形,并简略天轮回在这个paintComponent办法中画制它们

将其与this example以及this example中的设法主意联合在一路,您如今便不妨拖动外形

佳了闭于在这个游戏中应用哪一个结构治理器?的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。

0
没有账号?注册  忘记密码?