向jframe添加两个简单的jlabel



我已经到处搜索了,有大量的文档,但这一切都是令人困惑的,一半的测试代码不工作,所以我问。创建jlabel的最简单方法是什么?设置它的位置(使用int或维度),然后将其添加到JFrame

package com.notelek.notify;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Gui {

    public static void main(String[] args){
    }
    public static void notify(String line1, String line2, String imagepath, int style){
        GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
        int width = gd.getDisplayMode().getWidth();
        int swidth = width - 320;
        JFrame notification = new JFrame();
        notification.setSize(new Dimension(320,64));
        notification.setLocation(swidth, 0);
        notification.setUndecorated(true);
        notification.setVisible(true);
        JPanel main = new JPanel();
        JLabel notifyline1 = new JLabel();
        notifyline1.setText("test");
        notifyline1.setLocation(0, 0);
        main.add(notification);
    }
}

我想你的意思是notification.add(main);,顺序很重要:

import java.awt.*;
import javax.swing.*;
public class Gui {
    public static void main(String[] args){
        notify("", "", "", 0);
    }
    public static void notify(String line1, String line2, String imagepath, int style){
        JFrame notification = new JFrame();
        JPanel main = new JPanel();
        JLabel notifyline1 = new JLabel();
        notifyline1.setText("test");
        main.add(notifyline1);
        notification.add(main);
        notification.setSize(new Dimension(320,64));
        notification.setLocationRelativeTo(null);
        notification.setUndecorated(true);
        notification.setVisible(true);
    }
}

您需要将您的JLabel添加到一个可见的容器中,否则它无法显示在屏幕上

我也猜你实际上是想把你的JPanel加到你的JFrame上,而不是相反——就像这样:

...
main.add(notifyline1);
...    
notification.add(main);
...

最新更新