Шахматная доска и фигуры - Java
Формулировка задачи:
Собственно надоели теория и мелкие задачки. Решил написать что-нибудь интересное.
Первое что пришло в голову - шахматы.
1-ый вопрос:
Изображение шахматного поля загрузить смог, на форму кинул:
main:
класс ImagePanel :
Вот только мне не нравится, что при растягивании формы растягивается изображение.
Как сделать чтобы изображение оставалось в исходном размере независимо от размера формы?
public class ChessBoard extends JFrame { private JPanel chessBoardRootPanel; public static void main(String[] args) { String packName = ChessBoard.class.getPackage().toString(); packName = packName.substring(packName.length()-4); JFrame frame = new JFrame("ChessBoard "+ packName); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ImagePanel pp = new ImagePanel(); pp.setLayout(new BorderLayout()); try { pp.setImage(ImageIO.read(new File("chess.jpg"))); } catch (IOException e) { e.printStackTrace(); } frame.add(new JScrollPane(pp)); frame.pack(); frame.setSize(820, 820); frame.setLocationRelativeTo(null); frame.setVisible(true); } }
public class ImagePanel extends JPanel { private Image image; public Image getImage() { return image; } public void setImage(Image image) { this.image = image; } public void paintComponent(Graphics g) { super.paintComponent(g); if(image != null){ g.drawImage(image, 0, 0, getWidth(), getHeight(), null); } } }
Решение задачи: «Шахматная доска и фигуры»
textual
Листинг программы
public class ChessBoard extends JFrame { private JPanel chessBoardRootPanel; public static void main(String[] args) { //... ImagePanel pp = new ImagePanel(); pp.setLayout(new BorderLayout()); try { pp.setImage(ImageIO.read(new File("chessboard.gif"))); } catch (IOException e) { e.printStackTrace(); } final JLabel label = new JLabel(); Icon image = new javax.swing.ImageIcon("ladia.png"); label.setIcon(image); label.setLocation(100,100); label.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { label.setLocation(300,300); } }); pp.add(label); //... } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д