2016-09-24 3 views
-1

基本的に私たちはJavaの基本を教えてきましたが、私たちはJavaのGUIについて教えていませんでした。だから過去2日間私はテキストを上から下へと表示させようとしてきました。誰かが再配置を助けることができますか? 「登録番号」を「ユーザー名」の下に表示します。これはコードです:私はJavaのテキストを並べ替えることができません

package management; 

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

public class Library extends JFrame { 
    JFrame frame = new JFrame(); 
    JPanel panel = new JPanel(); 
    JLabel label1 = new JLabel(); 
    JLabel label3 = new JLabel(); 
    JLabel label2 = new JLabel(); 

    Library() { 
     super("WELCOME TO KCA LIBRARY"); 

     setLayout(new FlowLayout()); 
     setBounds(500,500,500,500); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     Container con = this.getContentPane(); 
     con.add(panel); 

     panel.setLayout(null); 

     label1=new JLabel("USERNAME"); 
     label1.setToolTipText("Enter Your Username"); 

     label2=new JLabel("REGISTRATION NUMBER"); 
     label2.setToolTipText("Enter Your Registration no"); 
     label2.setVerticalTextPosition(JLabel.BOTTOM); 

     label3 = new JLabel("PASSWORD"); 
     label3.setToolTipText("Enter Your Password"); 

     add(label1); 
     add(label2); 
     add(label3); 

     setVisible(true); 
    } 

    public static void main(String[]args) { 
     new Library(); 
    } 
} 
+1

「_I'veは私のテキストが上から下に見えるようにしようとして..._」あなたは、このことにより、正確に何を意味するのですか? – progyammer

+0

私はUSERNAMEを最初に表示したいので、ユーザー名の下に表示されるユーザー名とパスワードの下に表示する登録番号と、このようなreg noを入力します。https://examples.javacodegeeks.com/wp-content/uploads/2016/01/FxVBoxExample1.jpg – Ben

+0

あなたが 'FlowLayout'を使用しているので、すべてのコンポーネントが単一の行に表示されます。これを見てください:http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html – sinclair

答えて

1

あなたは私はあなたがそれをインポートしたので、あなたが推測するJavaのSwingを使用している場合は、「デザイン」タブに移動し、そこにrearangeすることができます。

これとは別の方法は、Swingより古くて悪い技術で、その場合はFlowLayoutを使用できません。すべてのコンポーネントを1つの行に入れます。 BoxLayout、GridBagLayout、GridLayout、GroupLayout、またはSpringLayoutを使用します。 レイアウトの詳細:https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

ご不明な点がありましたら、お尋ねください。 :)

+0

JButtonを追加すると、このように表示されるのはなぜですか?すべてのレイアウトを試しましたが、何も働いていません。場所を変更しても。私は皆さんを邪魔したくありませんが、 。 http://postimg.org/image/hzb0cwcbl/ – Ben

+0

もう一度試してみました。リンクをありがとうございました – Ben

+0

あなたを助けてくれてうれしい! :) あなたの仕事で幸運! –

2

layoutsとコンポーネントを修正してください:フローレイアウトを持つコンテンツペインにレイアウトのないパネルを追加して、ラベルをコンテンツペインに再度追加しました。 FlowLayoutは、コンポーネントを互いに並べて配置します。 SpringLayoutまたはGridBagLayoutは、お客様のニーズに最適です。これはGridLayoutを使用した簡単な例です:

package management; 

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

public class Library extends JFrame { 
    JFrame frame = new JFrame(); 
    JPanel panel = new JPanel(); 
    JLabel label1 = new JLabel(); 
    JLabel label3 = new JLabel(); 
    JLabel label2 = new JLabel(); 

    Library(){ 
     super("WELCOME TO KCA LIBRARY"); 

     setBounds(500, 500, 500, 500); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     Container con = this.getContentPane(); 
     con.add(panel); 

     panel.setLayout(new GridLayout(3, 1)); 

     label1 = new JLabel("USERNAME"); 
     label1.setToolTipText("Enter Your Username"); 

     label2 = new JLabel("REGISTRATION NUMBER"); 
     label2.setToolTipText("Enter Your Registration no"); 

     label3 = new JLabel("PASSWORD"); 
     label3.setToolTipText("Enter Your Password"); 

     panel.add(label1); 
     panel.add(label2); 
     panel.add(label3); 

     setVisible(true); 
    } 

    public static void main(String[]args){ 
     new Library(); 
    } 

} 
+0

ありがとうございます。これは本当に役に立ちました – Ben

+0

これがあなたの問題を解決するのに役立ったことを知ってうれしいです。はいの場合は、答えを受け入れることを躊躇しないでください:) – Armine

関連する問題