Im делая приложение, которое должно быть в состоянии читать файлы в данном каталоге, а затем отображать все файлы изображений в полноэкранном окне без полей, оно также должно отображать текстовые файлы, но я начал с этого еще что-нибудь, так что не обращайте внимания на часть system.out. Пока ive сделал полноэкранный и без полей JFrame, а ive создал Arraylist, содержащий файлы, которые я хочу показать. Затем я добавляю jpanel с файлом в конструкторе, этот jpanel добавляет изображение в jlabel и отображает его, после чего я удаляю jpanel и начинаю с следующего изображения.JLabel изображение исчезает до цвета
Что мне нужно - это способ заставить изображения затухать от заданного цвета, а затем исчезать до того же цвета.
это где я добавить панели и удалить их снова
for (File f : files) {
String fileName = f.getName();
if (fileName.endsWith(".txt")) {
System.out.println("Txt");
System.out.println(fileName);
System.out.println("--");
} else if (fileName.endsWith(".png") || fileName.endsWith(".jpg") || fileName.endsWith("bmp")) {
AlbumPanel albumpan = new AlbumPanel(connect, f, this);
add(albumpan, BorderLayout.CENTER);
pack();
try {
Thread.sleep(current.getFormat().getPicLength()*1000);
} catch (InterruptedException ex) {
}
remove(albumpan);
}
}
И это JPanel
public class AlbumPanel extends JPanel {
BufferedImage image;
ImageIcon icon;
IConnect connect;
File pic;
JFrame presWin;
public AlbumPanel(IConnect connect, File pic, JFrame presWin) {
this.connect = connect;
this.pic = pic;
this.presWin = presWin;
this.setLayout(new GridBagLayout());
try {
image = ImageIO.read(pic);
} catch (Exception e) {
System.out.println(e);
}
image = resize(image, presWin.getWidth(), presWin.getHeight());
icon = new ImageIcon(image);
JLabel picLabel = new JLabel();
picLabel.setIcon(icon);
add(picLabel);
setVisible(true);
}
private BufferedImage resize(BufferedImage image, int width, int height) {
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TRANSLUCENT);
Graphics2D g2d = (Graphics2D) bi.createGraphics();
g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY));
g2d.drawImage(image, 0, 0, width, height, null);
g2d.dispose();
return bi;
}
как создать полупрозрачный прямоугольник? только новый JLabel или что-то? Я гавань действительно работал с графикой в Java –
@JonasOlesen добавил что-то на что. –
Override paintComponent не красят, но да, это идея –