Шахматная доска и фигуры - 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);
//...
}
}