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
(scusate se la mia scrittura è illeggibile)
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
(scusate se la mia scrittura è illeggibile)
Si potrebbe ancorare una JTextArea
alla posizione BorderLayout.PAGE_END
di un contenitore e permettere al testo per scorrere verso l'alto.
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;
}
});
}
}
E 'la 'BorderLayout.SOUTH' dal textArea nei JPanel che cambia il posizionamento del testo? – Creator13
Sì. hanno aggiornato con la spiegazione – Reimeus
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. –
+1 per gli schemi disegnati a mano. –
come una decisione semplice: contare il numero di linee, riempire l'area di sosta con righe vuote – maks