Шахматная доска и фигуры - Java

Узнай цену своей работы

Формулировка задачи:

Собственно надоели теория и мелкие задачки. Решил написать что-нибудь интересное. Первое что пришло в голову - шахматы. 1-ый вопрос: Изображение шахматного поля загрузить смог, на форму кинул: main:
Листинг программы
  1. public class ChessBoard extends JFrame {
  2. private JPanel chessBoardRootPanel;
  3. public static void main(String[] args) {
  4. String packName = ChessBoard.class.getPackage().toString();
  5. packName = packName.substring(packName.length()-4);
  6. JFrame frame = new JFrame("ChessBoard "+ packName);
  7. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  8. ImagePanel pp = new ImagePanel();
  9. pp.setLayout(new BorderLayout());
  10. try {
  11. pp.setImage(ImageIO.read(new File("chess.jpg")));
  12. } catch (IOException e) {
  13. e.printStackTrace();
  14. }
  15. frame.add(new JScrollPane(pp));
  16. frame.pack();
  17. frame.setSize(820, 820);
  18. frame.setLocationRelativeTo(null);
  19. frame.setVisible(true);
  20. }
  21. }
класс ImagePanel :
Листинг программы
  1. public class ImagePanel extends JPanel {
  2. private Image image;
  3. public Image getImage() {
  4. return image;
  5. }
  6. public void setImage(Image image) {
  7. this.image = image;
  8. }
  9. public void paintComponent(Graphics g) {
  10. super.paintComponent(g);
  11. if(image != null){
  12. g.drawImage(image, 0, 0, getWidth(), getHeight(), null);
  13. }
  14. }
  15. }
Вот только мне не нравится, что при растягивании формы растягивается изображение. Как сделать чтобы изображение оставалось в исходном размере независимо от размера формы?

Решение задачи: «Шахматная доска и фигуры»

textual
Листинг программы
  1. public class ChessBoard extends JFrame {
  2.     private JPanel chessBoardRootPanel;
  3.  
  4.     public static void main(String[] args) {
  5.  
  6.         //...
  7.         ImagePanel pp = new ImagePanel();
  8.         pp.setLayout(new BorderLayout());
  9.         try {
  10.             pp.setImage(ImageIO.read(new File("chessboard.gif")));
  11.         } catch (IOException e) {
  12.             e.printStackTrace();
  13.         }
  14.  
  15.         final JLabel label = new JLabel();
  16.         Icon image = new javax.swing.ImageIcon("ladia.png");
  17.         label.setIcon(image);
  18.         label.setLocation(100,100);
  19.  
  20.         label.addKeyListener(new KeyAdapter() {
  21.  
  22.             public void keyPressed(KeyEvent e) {
  23.                 label.setLocation(300,300);
  24.             }
  25.         });
  26.         pp.add(label);
  27.  
  28.         //...
  29.     }
  30. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут