2013-05-28 7 views
5

Normalmente, in un JTextArea, il testo inizia nell'angolo in alto a sinistra. Voglio che sia nell'angolo in basso a sinistra. Come puoi fare questo?Come cambiare la posizione del testo in un JTextArea

enter image description here

(scusate se la mia scrittura è illeggibile)

+4

+1 per gli schemi disegnati a mano. –

+0

come una decisione semplice: contare il numero di linee, riempire l'area di sosta con righe vuote – maks

risposta

6

Si potrebbe ancorare una JTextArea alla posizione BorderLayout.PAGE_END di un contenitore e permettere al testo per scorrere verso l'alto.

Amazing Base JTextArea Application

public class BaseTextAreaDemo { 

    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) { 
       } 

       final JFrame frame = new JFrame("Base JTextArea App"); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.setLayout(new BorderLayout()); 
       JPanel textAreaPanel = getBaseTextArea(); 
       JScrollPane scrollPane = new JScrollPane(textAreaPanel) { 
        @Override 
        public Dimension getPreferredSize() { 
         return new Dimension(300, 230); 
        } 
       }; 

       frame.add(scrollPane); 
       frame.pack(); 
       frame.setLocationByPlatform(true); 
       frame.setVisible(true); 
      } 

      private JPanel getBaseTextArea() { 
       JTextArea textArea = new JTextArea(); 
       textArea.setLineWrap(true); 
       textArea.setWrapStyleWord(true); 
       textArea.append("bla bla bla\n"); 
       textArea.append("new text here"); 
       JPanel panel = new JPanel(new BorderLayout()); 
       panel.setBackground(textArea.getBackground()); 
       panel.setBorder(textArea.getBorder()); 
       textArea.setBorder(null); 
       panel.add(textArea, BorderLayout.PAGE_END); 

       return panel; 
      } 
     }); 
    } 
} 
+0

E 'la 'BorderLayout.SOUTH' dal textArea nei JPanel che cambia il posizionamento del testo? – Creator13

+0

Sì. hanno aggiornato con la spiegazione – Reimeus

+0

In Ubuntu, [ 'textArea.getBackground()'] (http://docs.oracle.com/javase/7/docs/api/java/awt/Component.html#getBackground()) restituisce la sua colore di sfondo con i genitori, rendendo i colori differenti: pannello grigio molto chiaro, e area di testo bianco. –

Problemi correlati