public void initialize(int xSize, int ySize) { _root = getContentPane(); _root.removeAll(); int height = getHeight(); // int width = getWidth(); Insets inset = new Insets(0, 0, 0, 0); int bySize = height / (ySize + 1); int bxSize = bySize; // getWidth() / xSize; int pan_sx = 150; // (width-bxSize*8)/2; JPanel toRoot = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0)); JPanel[] Sides = new JPanel[2]; for (int i = 0; i < Sides.length; i++) { Sides[i] = new JPanel(new BorderLayout(0, 0)); Sides[i].setMinimumSize(new Dimension(pan_sx, 0)); Sides[i].setPreferredSize(new Dimension(150, 150)); Sides[0].setMaximumSize(new Dimension(Short.MAX_VALUE, Short.MAX_VALUE)); } _buttons = new PositionableButton[xSize][ySize]; JPanel board = new JPanel(new GridLayout(XSize, YSize, 0, 0)); for (int i = 0; i < _buttons.length; i++) { for (int j = 0; j < _buttons[i].length; j++) { _buttons[i][j] = new PositionableButton(); _buttons[i][j].addActionListener(new ButtonClickedListener()); _buttons[i][j].setPosition(new Position(j, i)); _buttons[i][j].setVisible(true); _buttons[i][j].setPreferredSize(new Dimension(bxSize, bySize)); _buttons[i][j].setMargin(inset); board.add(_buttons[i][j]); } } if (_thread == null) { _thread = new RedrawThread(_buttons); _thread.start(); } _slimg = new StateableLabel(StateableLabel.Type.Image); _slimg.setPreferredSize(new Dimension(100, 100)); _slimg.setSize(new Dimension(100, 100)); _slimg.setMaximumSize(new Dimension(100, 100)); _slimg.setMinimumSize(new Dimension(100, 100)); _slnam = new StateableLabel(StateableLabel.Type.Name); _sltxt = new StateableLabel(); Sides[0].add(_slimg, BorderLayout.NORTH); Sides[0].add(_slnam, BorderLayout.CENTER); Sides[0].add(_sltxt, BorderLayout.SOUTH); toRoot.add(Sides[0], BorderLayout.WEST); toRoot.add(board, BorderLayout.CENTER); toRoot.add(Sides[1], BorderLayout.EAST); _root.add(toRoot); }
public void changeCharacter() { _slimg.setCharacter(Retentioner_Character.getCharacter()); _slnam.setCharacter(Retentioner_Character.getCharacter()); _sltxt.setCharacter(Retentioner_Character.getCharacter()); _slimg.changeState(Retentioner_Character.getState()); _slnam.changeState(Retentioner_Character.getState()); _sltxt.changeState(Retentioner_Character.getState()); }
@Override public void onCharacterChanged() { CharacterState state = Retentioner_Character.getState(); _slimg.changeState(state); _sltxt.changeState(state); }