2013-05-28 14 views
5

通常、JTextAreaでは、テキストは左上隅から開始されます。私はそれを左下隅にしたい。どのようにこれを行うことができますか?JTextAreaでテキストの位置を変更する方法

enter image description here

(謝罪私の手書きが読めない場合)

+4

+1。 –

+0

:直線の数を数え、空白の線で残りの部分を埋める – maks

答えて

6

あなたは、コンテナのBorderLayout.PAGE_END場所にJTextAreaを固定して、テキストをスクロールアップする可能性があります。手描き図の

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

JPanelのtextAreaの 'BorderLayout.SOUTH'は、テキストの位置を変更しますか? – Creator13

+0

はい。説明付きで更新されました – Reimeus

+0

Ubuntuでは、['textArea.getBackground()'](http://docs.oracle.com/javase/7/docs/api/java/awt/Component.html#getBackground())は、親の背景色、色が異なる:非常に明るい灰色のパネル、および白いテキスト領域。 –

関連する問題