Прежде чем вы спросите, я поднял эту проблему на веб-сайте, и предоставленные решения, к сожалению, не сработали для меня, поэтому я должен прибегнуть к просьбе еще раз увидеть, что я могу делать неправильно.Измените размер изображения в соответствии со всем JLabel, адаптирующимся к его размеру
Ближайшие достижение я имел с кодом я получил это (я должен определенно использовать и попробовать поймать, когда я получить изображение, я спасу, что для позже):
private void asignarTile(Tile tile, JPanel panel){
if(tile.getTipo() == 0){
ImageIcon ii = new ImageIcon("pasto.png");
Image image = ii.getImage();
Image newimg = image.getScaledInstance(32, 32, java.awt.Image.SCALE_SMOOTH);
ii = new ImageIcon(newimg);
tile.setIcon(ii);
panel.add(tile);
}
}
Теперь, как ни странно, я должен упомянуть, что код действительно работает для определенного размера, но впоследствии он не будет адаптировать размер изображения к JLabel, это означает, что сначала у меня будет это:
Но после того, как я изменить его, я буду это:
Я думаю, что было бы полезно отметить, что плитка расширяет JLabel, и эти изменения (Columna означает столбец, фила означает ряд, может быть, я должен начать писать свой код полностью на английском языке)
package gui;
import javax.swing.JLabel;
public class Tile extends JLabel{
private int fila, columna, tipo;
public int getFila() {
return fila;
}
public void setFila(int x) {
this.fila = x;
}
public int getColumna() {
return columna;
}
public void setColumna(int y) {
this.columna = y;
}
public int getTipo(){
return tipo;
}
public void setTipo(int tipo){
if(tipo >= 0 || tipo <= 6)
this.tipo = tipo;
}
public Tile(int x, int y, int tipo) {
this.setFila(x);
this.setColumna(y);
this.setTipo(tipo);
}
}
в заключение я должен сказать, что я рассмотрел добавление componentListener к плитке, так как она проходит в JLabel, но я также пытался изменить размер изображения до размеров лейбла без толку, так как он дал мне исключение, говоря, что его размеры равны 0, и ну, они не могут быть 0.
Спасибо вам за чтение!
Возможно, это простой ответ, но вы все еще не приняли ответы в своих других сообщениях, поэтому я передам это. – camickr
О? Это новая концепция, позвольте мне исправить это, я должен быть очень благодарен вам. Я только что принял ваш ответ, я не видел, что мне пришлось сначала, извините! – krieg