如何添加标签而不相互重叠

时间:2011-03-26 19:04:50

标签: java

我想在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);

2 个答案:

答案 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);
    }
}