JAVA中的SWING编程小问题

importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classMyJDialogextendsJDia... import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class MyJDialog extends JDialog{
private static final long serialVersionUID = 1L;
public MyJDialog(MyFrame frame){
super(frame,"第一个对话框",true);
Container container=getContentPane();
container.add(new JLabel("这是一个对话框"));
setBounds(120,120,100,100);
}
}
public class MyFrame extends JFrame{
private static final long serialVersionUID = 1L;
public static void main(String[] args) {
// TODO Auto-generated method stub
new MyFrame();
}
public MyFrame(){
Container container=getContentPane();
container.setLayout(null);
JLabel jl=new JLabel("这是一个JF窗体");、、、、、、、、、、、就是这里
jl.setHorizontalAlignment(SwingConstants.CENTER);
container.add(jl);
JButton bl=new JButton("弹出对话框");
bl.setBounds(10,10,100,21);
bl.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new MyJDialog(MyFrame.this).setVisible(true);
}
});
container.add(bl);
container.setBackground(Color.white);
setSize(200,200);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
setVisible(true);
}

}
问 这个程序中的JLable标签内容为什么没有显示出来呢
展开
 我来答
萢萢i3
2015-07-16 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.7万
采纳率:71%
帮助的人:4508万
展开全部

因为你没有设置JLabel的位置与大小。

这样:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class MyJDialog extends JDialog {
    private static final long serialVersionUID = 1L;
    public MyJDialog(MyFrame frame) {
        super(frame,"第一个对话框",true);
        Container container=getContentPane();
        container.add(new JLabel("这是一个对话框"));
        setBounds(120,120,100,100);
    }
}
public class MyFrame extends JFrame {
    private static final long serialVersionUID = 1L;
    public static void main(String[] args) {
        new MyFrame();
    }
    public MyFrame() {
        Container container=getContentPane();
        container.setLayout(null);
        JLabel jl=new JLabel("这是一个JF窗体");
        jl.setHorizontalAlignment(SwingConstants.CENTER);
        jl.setBounds(50,10,100,21); //加一句设置位置大小的语句
        container.add(jl);
        JButton bl=new JButton("弹出对话框");
        bl.setBounds(50,40,100,21); //改一下,以便于显示JLabel
        bl.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                new MyJDialog(MyFrame.this).setVisible(true);
            }
        });
        container.add(bl);
        container.setBackground(Color.white);
        setSize(200,200);
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        setVisible(true);
    }

}

效果:

百度网友12ee0fd
2015-07-16 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:2292万
展开全部
你设置了setLayout(null);
就需要自己指定JLabel的位置,就像JButton b1那样
追问
不是设置居中了么
追答
设置的不是JLabel的,是JLabel里的内容对齐方式。
Sets the alignment of the label's contents along the X axis.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式