2015-11-30 3 views
0

Не могу поверить, что на это нет ответов ... Я хочу просто сосредоточить JTextArea на JPanel. Для этого я использую BoxLayout. Когда я запускаю свою программу, JTextArea занимает весь экран. Почему это?Центр JTextArea в JPanel

public class BLayout extends JFrame implements ActionListener { 

    public BLayout() { 
     super("GUI Testing"); 
     setSize(500, 500); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JPanel choosePanel = new JPanel(); 
     choosePanel.setLayout(new BoxLayout(choosePanel, BoxLayout.X_AXIS)); 
     choosePanel.setBackground(Color.BLUE); 

     JTextArea text = new JTextArea(1, 10); 
     text.setLineWrap(true); 
     text.setEditable(false); 
     text.setText("Welcome to Library Search.\n\n" 
       + "Choose a command from the \"Commands\"" 
       + " menu above for adding a reference, " 
       + "searching references, or quitting the program."); 
     choosePanel.add(text); 
     add(choosePanel); 
    } 

Как я могу сделать текстовую область просто сидеть посередине панели, не занимая весь экран?

+4

Используйте 'GridBagLayout' - Просто сделать' choosePanel.setLayout (новый GridBagLayout()); 'и он будет сосредоточен. –

+0

Ничего себе, это так просто? Спасибо :) – MortalMan

+0

Пользователь хотел его с BoxLayout не GridBagLayout –

ответ

2

Я использую BoxLayout для этого. Когда я запускаю свою программу, JTextArea занимает весь экран. Почему это?

Потому что вот как работает BoxLayout. Вы могли бы использовать GridBagLayout вместо этого, в центре которой компоненты в контейнере по умолчанию, например

Example layout

import java.awt.EventQueue; 
import java.awt.GridBagLayout; 
import javax.swing.JFrame; 
import javax.swing.JTextArea; 
import javax.swing.UIManager; 
import javax.swing.UnsupportedLookAndFeelException; 

public class BLayout extends JFrame { 

    public BLayout() { 
     super("GUI Testing"); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setLayout(new GridBagLayout()); 


     JTextArea text = new JTextArea(7, 40); 
     text.setLineWrap(true); 
     text.setWrapStyleWord(true); 
     text.setEditable(false); 
     text.setText("Welcome to Library Search.\n\n" 
       + "Choose a command from the \"Commands\"" 
       + " menu above for adding a reference, " 
       + "searching references, or quitting the program."); 
     add(text); 
    } 

    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
       } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { 
        ex.printStackTrace(); 
       } 

       BLayout frame = new BLayout(); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.pack(); 
       frame.setLocationRelativeTo(null); 
       frame.setVisible(true); 
      } 
     }); 
    } 
} 
Смежные вопросы