2016-04-16 14 views
0

私は下の写真を使用して私のポイントを説明します:プロジェクトが実行されJFrameのサイズを変更して、ユーザーによってコンポーネントのサイズが拡大または縮小されるようにする方法はありますか?

この例:

http://i.stack.imgur.com/s1nLH.png

あなたはその後、コンポーネント自体を拡張していないユーザーの再サイズのフレームを、見ての通り代わりにグレーの色で塗りつぶしますが:

http://i.stack.imgur.com/kdNA3.png

私はJFrameのが目を作るサイズを変更する方法を知りたいですe成分は の範囲内にあり、フレームはユーザーに応じて拡大または縮小されます。

ここではこのプログラムの主なクラスは、私はGridBagのレイアウトを使用していると誰かが私はsetSize関数は、このプログラムをコーディングした後に実現することができます理解して理解する前に、

これは実際にはプロジェクトのためのものですが、これは以前使用していた以前のプログラムの1つに過ぎません。

public class Email{ 

    public static void main(String[] args) { 
     // The GUI thread is created, with the JFrame in the run method 
     SwingUtilities.invokeLater(new Runnable(){ 

      public void run(){ 

       JFrame frame = new Compose("Send an Email"); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.setSize(700 , 600); 
       // This stops the program from being resized 
       frame.setResizable(true); 
       frame.pack(); 
       frame.setVisible(true); 
      } 
     }); 
    } 

} 
+0

100%に取り組んでいる思い付いたコードであるあなたはIDE – Priyamal

+0

からデザインや建物をコーディングしている私が使用していませんGUIビルダーまたはそのいずれか、手元からコーディング。 flowLayoutを使用することは私のプログラムにとっても理想的ではありません。画面を最大化する場合は、それに応じてサイズを調整しないで最初の行に追加します。 – MedicoreProgrammer

答えて

2

GridBagLayoutのように見えます。したがって、あなたはあなたの望みの効果を得るためにあなたの制約を変更する必要があります。

How to Use GridBagLayoutのSwingチュートリアルのセクションを参照してください。

特に、weightx/weighty制約を調べる必要があります。これは、フレームサイズの変更に合わせてスペースを割り当てる方法をレイアウトに伝えます。値が0なので、コンポーネントのサイズが変更されず、コンポーネントが中央に表示されます。テキストフィールドのサイズを変更したいと思うでしょう。

チュートリアルを読んで、デモコードをダウンロードして遊んでください。次に、レイアウトを変更して必要な作業を行います。

+0

そうですね、私のコンテンツペインでは、他のいくつかのレイアウトを使って他のパネルと境界線レイアウトを使用しています。 – MedicoreProgrammer

+1

チュートリアルを読んでください。すべてのレイアウトマネージャがどのように機能するかを説明します。それで私はあなたにチュートリアルを指摘しました。最初に各レイアウトマネージャの基本を学習します。パネルをネストし、適切なレイアウトマネージャを使用します。投稿した写真に基づいて、あなたがGridBagLayoutを使用しているように見えるので、そこから始めることを提案しました。画像に基づいて、私はあなたがGridBagLayoutで簡単にそれを行うことができることをお勧めします。私は他のどのレイアウトを使用しているのかわからないので、私は心の読者ではないので、あなたが何をしているのかは明らかにコメントできません。 – camickr

+0

あなたは読者ではありませんが、すでに述べたように私は他のプログラムのために境界線レイアウトを使用しており、それに特有のものを求めていました。 – MedicoreProgrammer

0
import javax.swing.JFrame; 
import javax.swing.JLabel; 


public class emailjava extends JFrame{ 

    public emailjava(){ 
    adjustFrame(); 
    } 




    /** 
    * variable declaration 
    **/ 
    private final javax.swing.JLabel bccLbl= new javax.swing.JLabel(); 
    private final javax.swing.JTextField bccText= new javax.swing.JTextField(); 
    private final javax.swing.JTextField ccTExt= new javax.swing.JTextField(); 
    private final javax.swing.JLabel jLabel1= new javax.swing.JLabel(); 
    private final javax.swing.JLabel jLabel2= new javax.swing.JLabel(); 
    private final javax.swing.JPanel jPanel1 = new javax.swing.JPanel(); 
    private final javax.swing.JScrollPane jScrollPane1 = new javax.swing.JScrollPane(); 
    private final javax.swing.JLabel messageLbl= new javax.swing.JLabel(); 
    private final javax.swing.JTextArea messageText = new javax.swing.JTextArea(); 
    private final javax.swing.JLabel subjectLbl= new javax.swing.JLabel(); 
    private final javax.swing.JTextField subjectText= new javax.swing.JTextField(); 
    private final javax.swing.JTextField toText= new javax.swing.JTextField(); 
    //emd of the declaration 

    public final void adjustFrame(){ 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 


     JLabel []array = {jLabel1,jLabel2,bccLbl,subjectLbl,messageLbl}; 
     for (JLabel jLabel : array) { 
      jLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 
     } 

     jLabel1.setText("To :"); 
     jLabel2.setText("CC :"); 
     bccLbl.setText("BCC :"); 
     subjectLbl.setText("SubjectLine"); 
     messageLbl.setText("MessageBody"); 

     messageText.setColumns(20); 
     messageText.setRows(5); 
     jScrollPane1.setViewportView(messageText); 

     javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); 
     jPanel1.setLayout(jPanel1Layout); 
     jPanel1Layout.setHorizontalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addComponent(messageLbl, javax.swing.GroupLayout.DEFAULT_SIZE, 77, Short.MAX_VALUE) 
        .addComponent(subjectLbl, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addComponent(bccLbl, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
       .addGap(5, 5, 5) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(toText) 
        .addComponent(ccTExt) 
        .addComponent(bccText) 
        .addComponent(subjectText) 
        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 391, Short.MAX_VALUE)) 
       .addContainerGap()) 
     ); 
     jPanel1Layout.setVerticalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(jPanel1Layout.createSequentialGroup() 
       .addGap(35, 35, 35) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(toText, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(ccTExt, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(bccText, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(bccLbl, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(subjectText, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(subjectLbl, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 295, Short.MAX_VALUE) 
        .addGroup(jPanel1Layout.createSequentialGroup() 
         .addComponent(messageLbl, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE) 
         .addGap(0, 0, Short.MAX_VALUE)))) 
     ); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
     ); 

     pack(); 

    } 

    public static void main(String[] args) { 
     new emailjava().setVisible(true); 
    } 

} 

これは私はそれが私の自己試み、それはあなたのデザインでFlowLayoutのを使用

+1

ありがとう、私はこれを見ていきます。 – MedicoreProgrammer

関連する問題