1

私はどこでも検索しました、そしてたくさんのドキュメントがあります、しかしそれはすべて混乱していて、そしてテストコードの半分が機能しないので、私は尋ねています。jlabelを作成し、その場所を(intまたはdimensionを使用して)設定し、それを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);
    }

}
4

2 に答える 2

3

表示されているコンテナにを追加する必要がありますJLabel。そうしないと、画面に表示されません。

私はまた、あなたが実際にあなたJPanelをあなたに追加することを意図していたと思いますJFrame-その逆ではなく-そのようなもの:

...
main.add(notifyline1);
...    
notification.add(main);
...
于 2013-01-13T02:13:39.207 に答える
3

私はあなたが意味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);
    }
}
于 2013-01-13T02:18:07.170 に答える