#java #image #jpanel #scale
#java #изображение #jpanel #масштаб
Вопрос:
Нужна помощь в масштабировании изображения в JPanel, путь к которому вы не знаете. Итак, считайте изображение из JPanel, а затем масштабируйте изображение до размера JPanel.
Код до сих пор:
// Get the components inside the JPanel (subjpanels)
Component[] total_grid_fields = centerpanel.getComponents();
// Loop trough the JPanels
for (int i = 0; i < total_grid_fields.length-1; i ) {
// Check if it is a Jpanel
if(total_grid_fields[i] instanceof JPanel){
JPanel gridField = ((JPanel)total_grid_fields[0]);
// Get the width and height of the JPanel
int new_image_width = gridField.getWidth()-10;
int new_image_heigth = gridField.getHeight()-10;
// Get the components inside the JPanel
Component[] gridlabel = gridField.getComponents();
// Check if it is a JLabel
if(gridlabel[0] instanceof JLabel){
// Define a JLabel
JLabel newgridlabel = ((JLabel)gridlabel[0]);
// Get the placed ImageIcon
ImageIcon placeimage = (ImageIcon) newgridlabel.getIcon();
// Get the image
Image image = placeimage.getImage();
// Scale the image
Image newimg = image.getScaledInstance(new_image_width, new_image_heigth, java.awt.Image.SCALE_SMOOTH); // scale it the smooth way
// add new scaled image to ImageIcon
placeimage = new ImageIcon(newimg);
//add ImageIcon to Jlabel
img = new JLabel(placeimage);
// add Jlabel to Jpanel
newgridlabel.add(img);
// repaint the JFrame
frame.repaint();
}
}
}
Надеюсь, кто-нибудь может помочь…