import java.awt.Font;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;public class NewClass extends JFrame {    public static void main(String args[]) {
        NewClass frame = new NewClass();
        frame.setVisible(true);    }    public NewClass() {
        final JLabel label = new JLabel();
        final JButton Button = new JButton();
        label.setBounds(0, 0, 400, 300);
        label.setFont(new Font("", Font.BOLD, 22));
        label.setText("欢迎来到swing世界");
        label.setIcon(new ImageIcon("QCKH.JPG"));
        label.setHorizontalAlignment(JLabel.CENTER);
        label.setHorizontalTextPosition(JLabel.CENTER);
        label.setVerticalTextPosition(JLabel.BOTTOM);
        getContentPane().add(label);
        Button.setText("确定");
        Button.setBounds(10, 10, 20, 20);
        getContentPane().add(Button);
    }

解决方案 »

  1.   

    JFrame的默认布局是BorderLayout,你直接添加到JFrame中的组件会默认放在中间,所以Button把标签覆盖了。
    getContentPane().add(Button,BorderLayout.CENTER);
    getContentPane().add(label,BorderLayout.NORTH );
    这样添加试试。
      

  2.   

    运行这个代码看一下:
    import java.awt.BorderLayout;
    import java.awt.Font;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;public class NewClass extends JFrame {  public static void main(String args[]) {
      NewClass frame = new NewClass();
      frame.setVisible(true);
      frame.setSize(200,400);  }  public NewClass() {
      final JLabel label = new JLabel();
      final JButton Button = new JButton();
      label.setBounds(0, 0, 400, 300);
      label.setFont(new Font("", Font.BOLD, 22));
      label.setText("欢迎来到swing世界");
      label.setIcon(new ImageIcon("QCKH.JPG"));
      label.setHorizontalAlignment(JLabel.CENTER);
      label.setHorizontalTextPosition(JLabel.CENTER);
      label.setVerticalTextPosition(JLabel.BOTTOM);
      setLayout(new BorderLayout(5,10));
      getContentPane().add(label,BorderLayout.NORTH);
      Button.setText("确定");
      Button.setBounds(10, 10, 20, 20);
      getContentPane().add(Button);
      }
    }
    可以实现你的要求
      

  3.   

    实际上只要加上    getContentPane().setLayout(null); 就可以了,上面两位的方法都是一样的,虽然能使标签显示,但是却使按钮变得太大了。