que mostrar limpiar limitar definicion declarar datos como java swing layout jtextarea layout-manager

mostrar - que es jtextarea en java



Cómo hacer que JTextArea se adhiera a la ventana (2)

Hola, me gustaría hacer que este TextArea se adhiera al tamaño de Windows cuando cambie de tamaño con el mouse, de la misma manera que lo hacen los botones inferiores. Este es el código que funciona perfectamente sin errores, por favor échale un vistazo.

import java.awt.BorderLayout; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.LayoutManager; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.SwingUtilities; public class Rozklady extends JFrame { public Rozklady() { super(); } public void createGUI(){ setPreferredSize(new Dimension(400,150)); JPanel jp = new JPanel(); // jp.setLayout(new BoxLayout(jp, BoxLayout.Y_AXIS)); jp.setLayout(new GridLayout(0,1)); JPanel gora = new JPanel(); JPanel dol = new JPanel(); pack(); JTextArea jt1 = new JTextArea("JF1"); gora.add(jt1); jt1.setPreferredSize(new Dimension(getWidth(),getHeight()/2)); dol.setLayout(new BorderLayout()); JPanel lewo = new JPanel(); JPanel prawo = new JPanel(); JPanel srodek = new JPanel(); dol.add(lewo, BorderLayout.EAST); dol.add(prawo,BorderLayout.WEST); dol.add(srodek, BorderLayout.CENTER); lewo.setLayout(new GridLayout(2,2)); prawo.setLayout(new GridLayout(2,2)); srodek.setLayout(new GridLayout(0,1)); for(int i = 0; i < 4; i++){ lewo.add(new JButton(i+"")); prawo.add(new JButton(i+"")); if(i < 3){ srodek.add(new JTextField("JF"+i)); } } jp.add(gora); jp.add(dol); add(jp); setVisible(true); pack(); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new Rozklady().createGUI(); } }); } }


Use BorderLayout para su panel gora . Coloque el área de texto en el centro:

gora.setLayout(new BorderLayout()); gora.add(jt1, BorderLayout.CENTER);


// declare a GridLayout in constructor, one component will ''fill the container'' JPanel gora = new JPanel(new GridLayout()); JPanel dol = new JPanel(); // this should be called after all components are added! BNI pack(); JTextArea jt1 = new JTextArea("JF1"); // be sure to use a scroll pane for multi-line text components gora.add(new JScrollPane(jt1)); // ..

El estiramiento de un solo componente para llenar el espacio disponible se puede lograr varios was. Dos formas comunes son usar BorderLayout como lo menciona AlexR o GridLayout . Vea esta respuesta para el código de muestra. Prefiero GridLayout porque es más corto (menos tipeo). ;)