加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java Swing:将JLabel添加到JPanel

发布时间:2020-12-15 04:58:32 所属栏目:Java 来源:网络整理
导读:我只是想将JLabel添加到现有的JPanel中.这看起来很简单,我四处搜索.我认为这是对的,但标签没有出现在我的面板上.有谁看到我错过了什么?谢谢! ResultsPanel myPanel = new ResultsPanel(pnlResults); //pnlResults is an existing JPanelmyPanel.addLabel(p
我只是想将JLabel添加到现有的JPanel中.这看起来很简单,我四处搜索.我认为这是对的,但标签没有出现在我的面板上.有谁看到我错过了什么?谢谢!

ResultsPanel myPanel = new ResultsPanel(pnlResults);  //pnlResults is an existing JPanel
myPanel.addLabel(pnlResults);

public class ResultsPanel extends JPanel {

    JPanel myPanel;

    public ResultsPanel(JPanel thisPanel) {
        myPanel = thisPanel;
    }

    public void addLabel(JPanel myResults) {
        JLabel myLabel = new JLabel("test",JLabel.LEFT);
        myPanel.setLayout(new FlowLayout());
        add(myLabel);        
    }

}

编辑:回应下面的即时回复,我同意这似乎是完全矫枉过正.我沿着这条路走下去,因为下面的代码也没有导致JLabel被添加到我的JPanel中:

JLabel myLabel = new JLabel("test"); 
pnlResults.add(myLabel);

我宁愿使用这个代码,所以如果你认为它更有可能工作(当然有一些修改),请随意评论.再次感谢!

解决方法

这似乎是为了做一个基本的事情而跳过篮球;简单地打电话

JLabel label = new JLabel("Test text");//initialize the label
//do some stuff with label here maybe...
panel.add(label);//now add it

没有必要让一个类扩展JPanel,并包含一个JPanel;如果一个类扩展了JPanel,要获取JPanel实例,只需使用它(因此addLabel会改为执行this.setLayout(blah)).但是,当然没有必要将JPanel子类化为像添加JLabel这样简单的东西

总的来说,这是最简单的挥杆应用程序:

JFrame frame = new JFrame("Basic Swing");//Make a frame
    frame.setSize(300,300);//Give it a size
    frame.setDefaultCloSEOperation(JFrame.DISPOSE_ON_CLOSE);//Make it go away on close
    JPanel panel = new JPanel();//Make a panel
    frame.add(panel);//Add it to your frame

    JLabel label = new JLabel("Hello StackOverflow!");//Make a label
    panel.add(label);//Add it to the panel (which is on the frame)

    frame.setVisible(true);//Show the frame

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读