我想在JDialog中添加2个标签;一个标签将有GIF动画;其他人会有文字。如何添加这两个,以便它们不重叠?我不想硬编码他们的位置。我希望程序能够进行固有的调整。
先谢谢
代码:
JLabel l2=new JLabel("");
try {
Image img = ImageIO.read(getClass().getResource("resources/wait_animated.gif"));
ImageIcon imgnew=new ImageIcon("G:\\my java\\DesktopApplication1\\src\\desktopapplication1\\resources\\wait_animated.gif");
l2.setIcon(imgnew);
imgnew.setImageObserver(l2);
}
catch (IOException ex) {
}
l2.setLocation(300,300);
JDialog d=new JDialog();
JLabel l=new JLabel("Please Wait While Processing is Done... ");
JDesktopPane dp=new JDesktopPane();
dp.setPreferredSize(new Dimension(300,50));
l.setPreferredSize(new Dimension(250,50));
l2.setPreferredSize(new Dimension(20,20));
d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
d.setTitle("Wait dialog");
d.add(l);
d.add(l2);
答案 0 :(得分:2)
使用LayoutManager
(例如FlowLayout
)排列标签。没有更多细节,很难说。
答案 1 :(得分:1)
你意识到一个标签可以同时包含文字和图像,对吧? E.G。
import javax.swing.*;
import java.net.URL;
class AnimatedGifInLabelWithText {
public static void main(String[] args) throws Exception {
final URL url = new URL("http://pscode.org/media/starzoom-thumb.gif");
Runnable r = new Runnable() {
public void run() {
ImageIcon ii = new ImageIcon(url);
JLabel label = new JLabel("Zoom!", ii, SwingConstants.CENTER);
JOptionPane.showMessageDialog(null, label);
}
};
SwingUtilities.invokeLater(r);
}
}