Изображение .gif не перемещается при добавлении его на панель JTabbed.
У меня есть JFrame. В этом у меня есть два контейнера, то есть два JPanel. одна панель содержит изображение. другой держит JButton. Затем эти два добавляются в JTabbedPane.
Моя проблема заключается в использовании .gif изображения, которое становится статичным, как любое другое обычное изображение .jpg. Может ли кто-нибудь помочь мне с еще некоторыми идеями?
Вот мой код:
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.URL;
import java.net.UnknownHostException;
import javax.imageio.ImageIO;
import javax.imageio.stream.ImageInputStream;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.UIManager.LookAndFeelInfo;
public class ICLOUD implements ActionListener {
private BufferedImage bg;
JButton b1;
private Object frame1;
JFrame frame2 = new JFrame();
JDesktopPane desktop = new JDesktopPane();
public ICLOUD() {
try {
URL url = this.getClass().getResource("anigif.gif");
bg = ImageIO.read(url);
} catch (IOException ex) {
}
JPanel tabPanel = new JPanel(new GridBagLayout()) {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(bg, 0, 0, getWidth(), getHeight(), this);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(400, 300);
}
};
JPanel buttons = new JPanel(new GridLayout(4, 1, 15, 15));
buttons.setOpaque(false);
ImageIcon icon5 = new ImageIcon(ICLOUD.class.getResource("hi.jpg"));
b1=new JButton("Hello");
buttons.add(b1);
tabPanel.add(buttons);
JTabbedPane tabPane = new JTabbedPane();
tabPane.addTab(null,icon5, tabPanel);
JFrame frame = new JFrame("I-CLOUD");
b1.setVisible(true);
frame.setContentPane(tabPane);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (Exception e) {
}
ICLOUD r=new ICLOUD();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}