Hallo Leute,
ich hab gleich 2 Probleme mit JTextArea (java 1.6):
1. mein JTextArea ist soll platzmäßig in der Breite begenzt sein und falls der Text länger ist in der Höhe "wachsen" (und nicht in einem Scrollpane sein). Allerdings habe ich keinen Weg gefunden abzufragen wieviele Zeilen im jTA besetzt sind um es entsprechend zu vergrößern. Auch die gefundene Lösung mit getLineCount() hat nicht die Zeilen gebracht die er anzeigt sondern immer 1. Ich hab dann versucht Problem zu umgehen in dem ich es in ein ScrollPane stecke und wollte abfragen ob die Vertikalen Scrollbalken da sind, aber wiederum ohne Erfolg, habe kein möglichkeit gefunden abzufragen ob sie aktuell angezeigt werden.
2. Beim aufrufen meines Objekts wird im der Hintergrund des jTA gesetzt, alles wunderbar. Wenn ich aber setBackground() in einer Methode aufrufe bekomme ich eine NullpointerException.
Der funktionierende Konstrukturaufruf:
Hier der aufruf der eine Exception wirft:
Die Exception:
Zeile 101 = jTADescription.setBackground(c);
ich hab mit den Debugger gecheckt dass C wirklich nicht null ist (javax.swing.plaf.ColorUIResource[r=238,g=238,b=238]) , hab auch probiert
ber ohne Erfolg.
Vl weis einer von Euch Rat.
Danke,
mfg mic
ich hab gleich 2 Probleme mit JTextArea (java 1.6):
1. mein JTextArea ist soll platzmäßig in der Breite begenzt sein und falls der Text länger ist in der Höhe "wachsen" (und nicht in einem Scrollpane sein). Allerdings habe ich keinen Weg gefunden abzufragen wieviele Zeilen im jTA besetzt sind um es entsprechend zu vergrößern. Auch die gefundene Lösung mit getLineCount() hat nicht die Zeilen gebracht die er anzeigt sondern immer 1. Ich hab dann versucht Problem zu umgehen in dem ich es in ein ScrollPane stecke und wollte abfragen ob die Vertikalen Scrollbalken da sind, aber wiederum ohne Erfolg, habe kein möglichkeit gefunden abzufragen ob sie aktuell angezeigt werden.
2. Beim aufrufen meines Objekts wird im der Hintergrund des jTA gesetzt, alles wunderbar. Wenn ich aber setBackground() in einer Methode aufrufe bekomme ich eine NullpointerException.
Der funktionierende Konstrukturaufruf:
Java:
private void init(){
this.setSize(STDFIELDWIDTH, STDFIELDHEIGHT);
jTADescription = new javax.swing.JTextArea();
jTFInputField = new javax.swing.JTextField();
jsp = new JScrollPane();
jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); //keine horizontale Scrollbar
//jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); //vertikale Scrollbar nur bei Bedarf
jsp.setViewportView(jTADescription);
jsp.setBorder(null);
//setMaximumSize(new java.awt.Dimension(STDFIELDWIDTH, STDFIELDHEIGHT));
//setMinimumSize(new java.awt.Dimension(STDFIELDWIDTH, STDFIELDHEIGHT));
//setPreferredSize(new java.awt.Dimension(STDFIELDWIDTH, STDFIELDHEIGHT));
setRequestFocusEnabled(false);
setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jTADescription.setLineWrap(LINEBREAK);
jTADescription.setFont(FONT);
jTADescription.setDisabledTextColor(jTADescription.getForeground());
jTADescription.setEditable(true);
//+++++++++++++++++++++++++++
jTADescription.setBackground(this.getBackground());
//+++++++++++++++++++++++++++
jTADescription.setWrapStyleWord(WORDBREAK);
add(jsp, new org.netbeans.lib.awtextra.AbsoluteConstraints(LEFTSPACE, UPPERSPACE, getWidth()-RIGHTSPACE-LEFTSPACE-MIDDLESPACE-STDTEXTFIELDWIDTH, STDTEXTFIELDHEIGHT));
jsp.getAccessibleContext().setAccessibleName("");
jTFInputField.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
jTFInputField.setFont(FONT);
jTFInputField.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTFInputFieldActionPerformed(evt);
}
});
jTFInputField.addFocusListener(new java.awt.event.FocusAdapter() {
@Override
public void focusLost(java.awt.event.FocusEvent evt) {
jTFInputFieldFocusLost(evt);
}
});
add(jTFInputField, new org.netbeans.lib.awtextra.AbsoluteConstraints(getWidth()-RIGHTSPACE-STDTEXTFIELDWIDTH, UPPERSPACE, STDTEXTFIELDWIDTH, STDTEXTFIELDHEIGHT));
}
Hier der aufruf der eine Exception wirft:
Java:
@Override
public void setBackground(Color c){
super.setBackground(c);
jTADescription.setBackground(c);
}
Die Exception:
Java:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at bacc.CRFCore.FieldTextfield.setBackground(FieldTextfield.java:101)
at javax.swing.LookAndFeel.installColors(LookAndFeel.java:158)
at javax.swing.LookAndFeel.installColorsAndFont(LookAndFeel.java:194)
at javax.swing.plaf.basic.BasicPanelUI.installDefaults(BasicPanelUI.java:49)
at javax.swing.plaf.basic.BasicPanelUI.installUI(BasicPanelUI.java:39)
at javax.swing.JComponent.setUI(JComponent.java:662)
at javax.swing.JPanel.setUI(JPanel.java:136)
at javax.swing.JPanel.updateUI(JPanel.java:109)
at javax.swing.JPanel.<init>(JPanel.java:69)
at javax.swing.JPanel.<init>(JPanel.java:92)
at javax.swing.JPanel.<init>(JPanel.java:100)
at bacc.CRFCore.CRFContainer.<init>(CRFContainer.java:18)
at bacc.CRFCore.Field.<init>(Field.java:29)
at bacc.CRFCore.FieldTextfield.<init>(FieldTextfield.java:37)
at bacc.CRFCore.FieldNumeric.<init>(FieldNumeric.java:41)
at bacc.CRFCore.FieldInt.<init>(FieldInt.java:29)
at bacc.garbage.TestFrame$1.run(TestFrame.java:53)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Zeile 101 = jTADescription.setBackground(c);
ich hab mit den Debugger gecheckt dass C wirklich nicht null ist (javax.swing.plaf.ColorUIResource[r=238,g=238,b=238]) , hab auch probiert
Java:
jTADescription.setBackGround(super.getBackground());
ber ohne Erfolg.
Vl weis einer von Euch Rat.
Danke,
mfg mic