2017-06-08 19 views
0

私は2つのJLabelを配置することができますが、私は位置線の値を変更すると何もしません。また、私はそれを実行すると、2番目のラベルだけが表示されます。JLabelをJavaで配置およびサイズ設定するにはどうすればよいですか?

マイコード:

import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.SwingConstants; 

public class cubeTimerClass { 

    public static void main(String[] args) { 
     window(); //Runs the window method 
    } 

    public static void window() { 
     //Create a window 
       JFrame window = new JFrame(); //Create the window object 
       window.setSize(900, 600); //Set the size of the window 
       window.setTitle("Cube Timer"); //Set the title of the window 
       window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Tells the program to quit when user closes the window 
       window.setVisible(true); //Make the window visible 

       //Create a label 
       JLabel label1 = new JLabel(""); //Create the label1 object 
       label1.setText("Message 1"); //Set the text for label1 
       label1.setAlignmentX(0); 
       label1.setAlignmentY(0); 
       window.add(label1); //Place the label on the window 

       //Create a label 
       JLabel label2 = new JLabel(""); //Create the label2 object 
       label2.setText("Message 2"); //Set the text for label2 
       label2.setAlignmentX(0); 
       label2.setAlignmentY(50); 
       window.add(label2); //Place the label on the window 
    } 
} 
+1

あなたは[レイアウトマネージャへのビジュアルガイド]ことを読むことから始めなければならない(https://docs.oracle.com/javase/チュートリアル/ uiswing/layout/visual.html)。もちろん、 'JLabel.setAlignment()'ドキュメントはそれが何であるかとは異なります。 – AxelH

+0

ラベルの位置を自分で設定したい場合は、レイアウトマネージャを削除する必要があります( 'null'を設定する)。しかし、これはお勧めできません。まずAxelHがリンクされているトピック(リンクされた部分だけでなくトピック全体)を読んでください。 – Thomas

答えて

0

これでチェック -

JFrame frame = new JFrame(); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    JPanel panel = (JPanel) frame.getContentPane(); 
    panel.setLayout(null); 

    JLabel label = new JLabel("Java"); 
    panel.add(label); 
    Dimension size = label.getPreferredSize(); 
    label.setBounds(90, 100, size.width, size.height); 

    frame.setSize(300, 200); 
    frame.setVisible(true); 
+0

それは私のために働いた、私はライン "Dimension size = label.getPreferredSize();"を理解していない。私はそれがそれのテキストのために必要なラベルのサイズを計算し、それに応じて変数 '幅'と '高さ'を設定すると言って正しいですか? –

+0

はい、nullレイアウトが使用されています.JLabelに追加されたテキストに応じてサイズを計算する必要があります。 – Monali

関連する問題