Шахматная доска и фигуры - 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);
- //...
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д