# g2.drawString() macht keine neue Zeile



## Reality (9. Jun 2005)

Hi!
Ich mach ja ein Spiel als Abschluß-Projekt und ich muss das bis nächste Woche fertig haben!
Jetzt wollte ich Fragen im Spiel einbauen, aber g2.drawString() (Graphics2D) macht keine neue Zeile, die im String angegeben ist.

Muss ich vielleicht manuell die Pixel des Strings zählen und dann evtl. ein Zeilenumbruch mit der Methode g2.drawString() machen?!

Hier der Fehler:
http://mitglied.lycos.de/masterchan/NeueZeileFehler.PNG

Bin für schnelle Hilfe dankbar.

Liebe Grüße
Reality


----------



## Guest (9. Jun 2005)

naja, das verhalten ist richtig. eine schnelle loesung waere, eine unsichtbare textarea mit der passenden groesse anzulegen und sie dann in den kontext zeichnen zu lassen. oder mal googeln, das problem hatten schon so viele, da muss es einface ne komponente fuer geben.

kind regards


----------



## Reality (9. Jun 2005)

Danke für deine Hilfe!
Ich finde das mal unglaublich! Ich kriege nicht mal mehr eine JTextArea hin! Mit TextArea geht das, aber bei TextArea werden die Balken angezeigt.

Was ist falsch?!


```
import javax.swing.*;
import java.awt.*;

public class TextAreaTest extends JFrame{
  JTextArea ta = new JTextArea();
  JPanel contentPane = new JPanel();
  
  TextAreaTest(){
    
    ta.setBackground(new Color(255, 255, 255, 50));
    ta.setBounds(new Rectangle(90, 111, 199, 116));
    
    contentPane.add(ta);
    
    
    super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    super.setVisible(true);
    super.setSize(300, 300);
    super.setBackground(Color.BLUE);
    
    setContentPane(contentPane);
  }
  
  public static void main(String[] args) {
    TextAreaTest frame = new TextAreaTest();

  }
}
```

Liebe Grüße
Reality


----------



## Guest (9. Jun 2005)

so besser?

```
public class TextAreaTest extends JFrame
{
     static final JTextArea textArea = new JTextArea("lala\nhi");

    TextAreaTest()
    {
        super("TestFrame");
        final JPanel content=new JPanel()
        {
            public void paint(Graphics g) 
            {
                final Graphics2D g2d=(Graphics2D)g;
                super.paint(g);
                textArea.paint(g2d.create(70, 150, 60, 50));
            };
        };
        setSize(200,200);
        content.setBackground(Color.BLACK);
        content.setForeground(Color.BLACK);
        content.setOpaque(true);
        
        textArea.setBounds(0,0,60,50);
        textArea.setForeground(Color.GREEN);
        textArea.setBackground(new Color(0,0,0,255));
        textArea.setOpaque(true);
        
        //content.add(textArea);
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(content, BorderLayout.CENTER);
        
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setVisible(true);
    }

    public static void main(String[] args)
    {
        TextAreaTest frame = new TextAreaTest();

    }
}
```


----------



## Guest (9. Jun 2005)

zeile 25 muss natuerlich


```
textArea.setBackground(new Color(0,0,0,0));
```

heissen


----------



## Reality (9. Jun 2005)

Oh man! Du kennst dich ganz schön aus!
Ich danke dir vielmals!


----------

