Почему однострочный JtextField на полэкрана? - Java

Узнай цену своей работы

Формулировка задачи:

У меня какая то непонятная вещь получается с текстовым полем, которое больше похоже на текстовую область(хотя активная лиш одна строка), но занята очень большая область. Вот код:
import javax.swing.JFrame;
import javax.swing.JTextField;      
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.BoxLayout;
//import javax.swing.Container;
import java.awt.GridLayout; 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Component;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.io.*;
 
public class Jr extends JFrame {
    int ind;
    JFrame frame;
    static JLabel label;
    static JPanel contentPane;
    JTextArea textArea;
    JTextField textField;
    
    public Jr() {
    //frame = new JFrame();
    /*frame.setDefaultLookAndFeelDecorated(true);
    frame.setTitle("File Indexator");
    frame.setSize(400, 700);
    //frame.pack();
    //frame.setResizable(false); 
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //frame.setLayout(new GridLayout(0,1));*/
    contentPane = new  JPanel();
    contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
    this.add(contentPane);
    label = new JLabel("\n");
    JLabel labe2 = new JLabel("Below are the indexator xml");
    //label.setAlignmentY(Component.CENTER_ALIGNMENT);
    //frame.add(label);
    JButton buttonInd = new JButton("Indexate");
    buttonInd.setAlignmentY(Component.CENTER_ALIGNMENT);
    buttonInd.setHorizontalAlignment(JButton.CENTER);
    JButton convertandrender = new JButton(" Render");
    JButton convertandwrite = new JButton("Writeto File");
    textField=new JTextField(20);
    JButton search = new JButton("Search"); 
    textArea = new JTextArea();  
    textArea.setSize(400,300);    
    textArea.setLineWrap(true);
    textArea.setEditable(true);
    textArea.setVisible(true);
    JScrollPane scroll = new JScrollPane (textArea);
    scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    //frame.setVisible(true); 
    contentPane.add(buttonInd);
    contentPane.add(convertandwrite);
    contentPane.add(convertandrender);
    contentPane.add(label);
    contentPane.add(textField);
    contentPane.add(search);
    contentPane.add(labe2);
    contentPane.add(scroll);}
        
  public static void main(String[] args) {
    Jr frame=new Jr();
    frame.setDefaultLookAndFeelDecorated(true);
    frame.setTitle("File Indexator");
    frame.setSize(400, 700);
    //frame.pack();
    //frame.setResizable(false);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setVisible(true);
    //frame.add(contentPane);
     //frame.setVisible(true); 
  }
}
В чем здесь может быть дело? Lаyout Manager? Может какие то границы ан текстовое поле поставить?

Решение задачи: «Почему однострочный JtextField на полэкрана?»

textual
Листинг программы
if (JF.ind==0) {JF.label.setText("You should wright xml file");
          return;
          };

Оцени полезность:

10   голосов , оценка 4.2 из 5