2016-04-10 6 views
0

私はJava GUIプログラミングには比較的新しいので、コンセプトは私の頭の中でうまくいっていますが、JFrameの空きスペースを取り除くことでこの小さな問題があります。JFrameの空き領域を削除するにはどうすればよいですか?

次のコードを実行すると、JTextFieldとJButtonの間にかなりのギャップがあることがわかります。私はボタンが非常に下のJTextFieldに触れるようにこのギャップを取り除きたいと思います。

また、別の非常に小さな質問です。 JTextFieldの高さを増やして、1つではなく3つの行を持つようにするにはどうすればよいですか?

とにかくここにコードがあります。

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


public class HW4GUI extends JFrame 
{ 

private JButton jbtAction; 
private JTextField jtfFName; 
private JTextField jtfLName; 
private JTextField jtfLibNo; 
private static int nextLibNo; 
private JPanel textPanel; 

public HW4GUI() 
{ 
    super("HW4GUI"); 
    makeFrame(); 
    showFrame(); 
} 

public void makeFrame() 
{ 
    setLayout(new BorderLayout()); 
    setResizable(false); 

    textPanel = new JPanel(); 
    textPanel.setLayout(new GridLayout(3,2)); 

    jbtAction = new JButton("Add Borrower");  

    JLabel FirstNameLabel = new JLabel("FirstName:"); 
    jtfFName = new JTextField(3); 

    JLabel LastNameLabel = new JLabel("LastName:"); 
    jtfLName = new JTextField(3); 

    JLabel LibNoLabel = new JLabel("Library Number:"); 
    jtfLibNo = new JTextField(3); 

    FirstNameLabel.setHorizontalAlignment(JTextField.RIGHT); 
    LastNameLabel.setHorizontalAlignment(JTextField.RIGHT); 
    LibNoLabel.setHorizontalAlignment(JTextField.RIGHT); 

    jtfLibNo.setEditable(false); 

    textPanel.add(FirstNameLabel); 
    textPanel.add(jtfFName); 
    textPanel.add(LastNameLabel); 
    textPanel.add(jtfLName); 
    textPanel.add(LibNoLabel); 
    textPanel.add(jtfLibNo); 

    add(textPanel, BorderLayout.NORTH); 
    add(jbtAction, BorderLayout.SOUTH); 
} 

public void showFrame() 
{ 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setLocationRelativeTo(null); 
    setSize(400,200); 
    setVisible(true); 
} 

public void actionPerformed(ActionEvent e) 
{ 

} 
} 
+1

あなたの主な方法はどこですか?これなしでこれを実行するのはちょっと難しい – Rocket6488

答えて

2

これらはどちらも非常に簡単な修正です。最初の質問では、 "SOUTH"の代わりに "CENTER"を設定し、2番目の質問ではJTextareaを複数行にするか、JScrollPaneをスクロールして非常に大きなサイズにすることができます。 P.P.以下のように実行するには、常にmainメソッドをインクルードする必要があります。

public static void main(String[] args){ 
new HW4GUI(); 
} 
+0

ありがとう!しかし、私の評価(これは大学の仕事です)では、JTextFieldを使用する必要があります.JTextFieldオブジェクト内でフィールドのサイズを増やすことができるものはありますか? –

+0

残念ながら、私が知っていることから、これは不可能です。 JTextFieldsは単なる行ですが、私は何かが欠落している可能性があるので、[Java API docs](http://docs.oracle.com/javase/8/docs/api/)をここに入れます。 – Spork

+0

(1+) 'フィールドのサイズが大きくなり、私はJTextFieldのオブジェクト内で変更できるものがあり、' - ?いいえ。各コンポーネントは、一つのことを行うように設計されています。 JTextFieldは、1行のテキストを表示する単純なコンポーネントです。 JTextAreaはより複雑で、複数行のテキストを表示します。ジョブには適切なコンポーネントを使用します。 – camickr

関連する問題