JTextArea zeigt keine Scrollbalken

Status
Nicht offen für weitere Antworten.

clou

Mitglied
Hallo,
zwei kleine Problemchen habe ich noch mit meinem Projekt.

1. In der Textarea soll eine horizontale Scrolleiste erscheinen, wenn der Text zu lang ist. Dort, wo ich den Code einfüge funktioniert das aber nicht. Kompilieren funktioniert, aber die Scrollleiste erscheint nicht. Wo liegt mein Denkfehler?

2. Bei den Buttons habe ich einen leeren Platzhalter davor gesetzt, damit die in der Mitte stehen. Nicht sauber, sieht aber so aus, wie es aussehen soll. Wie geht das ohne diesen Platzhalter?

[HIGHLIGHT="Java"]import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Projekt extends Ramen
{
private String text1;

void buildConstraints(GridBagConstraints gbc, int gx, int gy,
int gw, int gh, int wx, int wy) {

gbc.gridx = gx;
gbc.gridy = gy;
gbc.gridwidth = gw;
gbc.gridheight = gh;
gbc.weightx = wx;
gbc.weighty = wy;
}

public Projekt()
{
text1=("");

setSize(500, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final GridBagLayout gridbag = new GridBagLayout();
final GridBagConstraints constraints = new GridBagConstraints();
final JPanel pane = new JPanel();
final JScrollPane scrollyta = new JScrollPane(pane);

pane.setLayout(gridbag);

// textfield
buildConstraints(constraints, 0, 0, 5, 1, 100, 0);
constraints.fill = GridBagConstraints.HORIZONTAL;
final JTextField textfält = new JTextField();
gridbag.setConstraints(textfält, constraints);
pane.add(textfält);

//========= Das hier ist schlampig, wie schaffe ich es, dass die Buttons in der Mitte der Zeile platziert
//========= werden ohne diesen Platzhalter hier?
// tomt platshåller
buildConstraints(constraints, 0, 1, 1, 1, 0, 0);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.EAST;
JLabel label1 = new JLabel(" ", JLabel.LEFT);
gridbag.setConstraints(label1, constraints);
pane.add(label1);

// knapp1
buildConstraints(constraints, 1, 1, 1, 1, 0, 0);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
JButton knapp1 = new JButton("Bild 1");
gridbag.setConstraints(knapp1, constraints);
pane.add(knapp1);

// knapp2
buildConstraints(constraints, 2, 1, 1, 1, 0, 0);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
JButton knapp2 = new JButton("Bild 2");
gridbag.setConstraints(knapp2, constraints);
pane.add(knapp2);

// knapp3
buildConstraints(constraints, 3, 1, 1, 1, 0, 0);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
JButton knapp3 = new JButton("Text area");
gridbag.setConstraints(knapp3, constraints);
pane.add(knapp3);

// Label 1 (Bild 1)
buildConstraints(constraints, 0, 2, 5, 10, 100, 100);
constraints.fill = GridBagConstraints.BOTH;
final JLabel lbl1 = new JLabel(new ImageIcon("wave.gif"),
SwingConstants.CENTER//inte nödvändig, men skadar inte
);

gridbag.setConstraints(lbl1, constraints);
pane.add(lbl1);

// Label 2 (Bild 2)
buildConstraints(constraints, 0, 2, 5, 10, 100, 100);
constraints.fill = GridBagConstraints.BOTH;
final JLabel lbl2 = new JLabel(new ImageIcon("surf.jpg"),
SwingConstants.CENTER//inte nödvändig, men skadar inte
);

gridbag.setConstraints(lbl2, constraints);
pane.add(lbl2);
lbl2.setVisible(false);

// textarea
buildConstraints(constraints, 0, 2, 5, 10, 100, 100);
constraints.fill = GridBagConstraints.BOTH;
final JTextArea textarea = new JTextArea();
gridbag.setConstraints(textarea, constraints);
pane.add(textarea);
textarea.setVisible(false);

// Content Pane
setContentPane(pane);
setVisible(true);

//========== Keiner der drei funktioniert
//textarea.add((scrollyta), BorderLayout.CENTER);
//textarea.add(new JScrollPane(textarea));
//getContentPane().add(scrollyta, BorderLayout.CENTER);


// knapp 1
knapp1.addActionListener
(
new ActionListener()
{
public void actionPerformed( ActionEvent event )
{

lbl2.setVisible(false);
textarea.setVisible(false);
lbl1.setVisible(true);

}
}
);


// knapp 2
knapp2.addActionListener
(
new ActionListener()
{
public void actionPerformed( ActionEvent event )
{

lbl1.setVisible(false);
textarea.setVisible(false);
lbl2.setVisible(true);

}
}
);

// knapp 3
knapp3.addActionListener
(
new ActionListener()
{
public void actionPerformed( ActionEvent event )
{

lbl1.setVisible(false);
lbl2.setVisible(false);
textarea.setVisible(true);
textarea.add((scrollyta), BorderLayout.CENTER);

}
}
);


// item1 - avsluta
item1.addActionListener
(
new ActionListener()
{
public void actionPerformed( ActionEvent event )
{
System.exit( 0 );
}
}
);

// item2 - lägg till text
item2.addActionListener
(
new ActionListener()
{
public void actionPerformed( ActionEvent event )
{
textarea.setText(text1 + textfält.getText());//fylla på innehåll från textfält och gammal text från textarea
text1=(text1 + textfält.getText());//fylla på innehåll från textfält och gammal text från textarea
textfält.setText("");// gör textfält tomt
}
}
);

// item3 - radera text
item3.addActionListener
(
new ActionListener()
{
public void actionPerformed( ActionEvent event )
{
textarea.setText("");// gör textarea tomt
}
}
);
}

public static void main(String [] args)
{
Projekt test = new Projekt();
}
}
[/HIGHLIGHT]

Zur Vervollständigung noch der Code der Superclass:

[HIGHLIGHT="Java"]import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Ramen extends JFrame
{
public JMenuBar mbar;
public JMenu meny1, meny2;
public JMenuItem item1, item2, item3;
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();


public Ramen()
{


mbar = new JMenuBar();
meny1 = new JMenu("Arkiv");
meny2 = new JMenu("Info");
item1 = new JMenuItem("Avsluta");
item2 = new JMenuItem("Lägg till text");
item3 = new JMenuItem("Radera text");

setJMenuBar(mbar);
mbar.add(meny1);
mbar.add(meny2);

meny1.add(item1); meny2.add(item2); meny2.add(item3);

Container c = getContentPane();
c.setLayout(new GridBagLayout());

c.setBackground(Color.WHITE);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
pack();
}

}[/HIGHLIGHT]


Wäre super, wenn mir jemand noch hierbei helfen könnte und bedanke mich schon jetzt für eure geschätzte Hilfe.

LG
Clou
 
Zuletzt bearbeitet von einem Moderator:
M

MiDniGG

Gast
1.) Joa. Du machst das falsch rum. Du musst die Textarea dem Scrollpanel adden und nicht andersrum.

2.) Bin mit dem GridBag nicht so vertraut. Aber gibts da nicht vielleicht auch was mit CENTER oder sowas?

Noch zur Info "textfält" ist böööse! Keine Sonderzeichen in Variablennamen :)
 

clou

Mitglied
1.) Du musst die Textarea dem Scrollpanel adden und nicht andersrum.

Meinst du so?
Code:
scrollyta.add((textarea), BorderLayout.CENTER);

Das geht gar nicht.

oder so?
Code:
scrollyta.add(new JScrollPane(textarea));

Geht auch nicht. Oder was meinst du?

Noch zur Info "textfält" ist böööse! Keine Sonderzeichen in Variablennamen :)
Das seh ich genauso. Ist aber so vorgegeben (die spinnen die Schweden :)).
Danke dennoch.
LG
Clou
 
M

MiDniGG

Gast
haha. Ich mag die Schweden :D :D :D

Mh. Ja eigentlich schon so scrollyta.add(textarea, BorderLayout.CENTER);
Bin mir nur nicht sicher ob er das Layout da nimmt im Scrollpanel... Schon ohne versucht? also nur
scrollyta.add(textarea);

Edit: Ich machs immer so seh ich grad:

[HIGHLIGHT="Java"]JScrollPane scroll = new JScrollPane(acb);[/HIGHLIGHT]

Sollte aber eigentlich das Gleiche wie add bewirken :D Also Layout weglassen! :)
 
Zuletzt bearbeitet von einem Moderator:

clou

Mitglied
Danke nochmal. Hab ich jetzt alle Möglichkeiten versucht, aber keine Lösung in Sicht. Ich habe das Gefühl, dass der Code an einer falschen Stelle steht, aber auch an anderen Stellen keine Lösung. Noch 'ne Idee? Oder jemand anderes? Büdddeeeeee - so kurz vor dem Ziel.

LG
Clou
 

MarcB

Bekanntes Mitglied
Hab mir das jetzt nicht alles angesehen, aber warum nicht einfach so:
pane.add(new JScrollPane(textarea));
 

clou

Mitglied
Hab mir das jetzt nicht alles angesehen, aber warum nicht einfach so:
pane.add(new JScrollPane(textarea));

Danke erst mal.
Klingt logisch, aber sobald ich den Button 3 anklicke ist die Textarea weg und alles verschiebt sich in die Mitte.
Warum, weiß ich nicht. Ist aber auch bei anderen versuchten Codes so.

Noch jemand eine Idee?
 
M

MiDniGG

Gast
Hm. Hast Du das noch so drin?

[HIGHLIGHT="Java"]final JScrollPane scrollyta = new JScrollPane(pane);[/HIGHLIGHT]

Wenn ja pane raus. :)

Außerdem würde ich mal die diversen finals rausmachen? Was sollen die bringen? Oder überseh ich grad was??? Und wenn Du schon bei 3 Buttons nen ActionListener hast kannst den bei der Klasse au implementieren und dann in einer ActionPerformed alles machen...

Ich füg evtl. gleich noch was dazu. Aber erst ma was essen ^^

Edit:
OK. Hab noch was. Was macht die Main-Methode in der Subclass???

Und falls Du das noch so hast:

[HIGHLIGHT="Java"]
knapp3.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent event ) {
lbl1.setVisible(false);
lbl2.setVisible(false);
textarea.setVisible(true);
textarea.add((scrollyta), BorderLayout.CENTER);
}
});
[/HIGHLIGHT]

Natürlich dann das ScrollPanel visible setzen und eben den add richtig.

So. Ich glaub mehr hab ich jetzt gerade nicht... :)
 
Zuletzt bearbeitet von einem Moderator:

clou

Mitglied
Hm. Hast Du das noch so drin?
[HIGHLIGHT="Java"]final JScrollPane scrollyta = new JScrollPane(pane);[/HIGHLIGHT]
nöö, das ist schon raus

Außerdem würde ich mal die diversen finals rausmachen? Was sollen die bringen? Oder überseh ich grad was???
Die musste ich rein mache, weil Fehlermeldungen kamen. Weiß aber nicht mehr welche :). Aber jetzt funktionieren sie auch ohne final. Danke für den Tipp.

Und wenn Du schon bei 3 Buttons nen ActionListener hast kannst den bei der Klasse au implementieren und dann in einer ActionPerformed alles machen...

Das kann ich nicht :-(
Und weil es so funktioniert möchte ich es auch gerne lassen. Ist nur noch dieses Scrollen, was fehlt.

OK. Hab noch was. Was macht die Main-Methode in der Subclass???
Ist so Aufgabenstellung - die spinnen, die Schweden :)

[HIGHLIGHT="Java"]
knapp3.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent event ) {
lbl1.setVisible(false);
lbl2.setVisible(false);
textarea.setVisible(true);
textarea.add((scrollyta), BorderLayout.CENTER);
}
});
[/HIGHLIGHT]

Natürlich dann das ScrollPanel visible setzen und eben den add richtig.

Hat leider nichts gebracht :-(

Trotzdem danke. Weiß denn sonst niemand Rat?
 
M

MiDniGG

Gast
Hm. Kannst Du vllt nochmal die Aktuelle Version deines Programms posten. Da ist ja jetzt doch einiges passiert. Dann lässt es sich evtl. leichter nachvollziehen.

Oh und nutze bitte den Javacode-Tag:
[ HIGHLIGHT="Java" ]...[ / HIGHLIGHT ]
Ohne die leerzeichen. ^^
 
M

MiDniGG

Gast
So. Habs etz mal gemacht ^^ Ich glaub mir is langweilig ^^

Viel Spaß damit:

[HIGHLIGHT="Java"]
package de;

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

public class Projekt extends Ramen implements ActionListener {
private static final long serialVersionUID = 1L;

private String text1;

private JButton knapp1 = null;
private JButton knapp2 = null;
private JButton knapp3 = null;

private JLabel lbl1 = null;
private JLabel lbl2 = null;
private JLabel label1 = null;

private JScrollPane scrollyta = null;

private JPanel pane = null;

private JTextField textfält = null;

private JTextArea textarea = null;

void buildConstraints(GridBagConstraints gbc, int gx, int gy, int gw, int gh, int wx, int wy) {
gbc.gridx = gx;
gbc.gridy = gy;
gbc.gridwidth = gw;
gbc.gridheight = gh;
gbc.weightx = wx;
gbc.weighty = wy;
}
public Projekt() {
text1 = ("");

setSize(500, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints constraints = new GridBagConstraints();
pane = new JPanel();
pane.setLayout(gridbag);

// textfield
buildConstraints(constraints, 0, 0, 5, 1, 100, 0);
constraints.fill = GridBagConstraints.HORIZONTAL;
textfält = new JTextField();
gridbag.setConstraints(textfält, constraints);

buildConstraints(constraints, 0, 1, 1, 1, 0, 0);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.EAST;
label1 = new JLabel(" ", JLabel.LEFT);
gridbag.setConstraints(label1, constraints);

// knapp1
buildConstraints(constraints, 1, 1, 1, 1, 0, 0);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
knapp1 = new JButton("Bild 1");
gridbag.setConstraints(knapp1, constraints);

// knapp2
buildConstraints(constraints, 2, 1, 1, 1, 0, 0);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
knapp2 = new JButton("Bild 2");
gridbag.setConstraints(knapp2, constraints);

// knapp3
buildConstraints(constraints, 3, 1, 1, 1, 0, 0);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
knapp3 = new JButton("Text area");
gridbag.setConstraints(knapp3, constraints);

// Label 1 (Bild 1)
buildConstraints(constraints, 0, 2, 5, 10, 100, 100);
constraints.fill = GridBagConstraints.BOTH;
lbl1 = new JLabel(new ImageIcon("wave.gif"), SwingConstants.CENTER// inte nödvändig, men skadar inte
);

gridbag.setConstraints(lbl1, constraints);

// Label 2 (Bild 2)
buildConstraints(constraints, 0, 2, 5, 10, 100, 100);
constraints.fill = GridBagConstraints.BOTH;
lbl2 = new JLabel(new ImageIcon("surf.jpg"), SwingConstants.CENTER// inte nödvändig, men skadar inte
);

gridbag.setConstraints(lbl2, constraints);
lbl2.setVisible(false);

// textarea
textarea = new JTextArea();
scrollyta = new JScrollPane(textarea);
scrollyta.setVisible(false);
buildConstraints(constraints, 0, 2, 5, 10, 100, 100);
constraints.fill = GridBagConstraints.BOTH;
gridbag.setConstraints(scrollyta, constraints);
pane.add(textfält);
pane.add(label1);
pane.add(knapp1);
pane.add(knapp2);
pane.add(knapp3);
pane.add(lbl1);
pane.add(lbl2);
pane.add(scrollyta);
// Content Pane
setContentPane(pane);
setVisible(true);

knapp1.addActionListener(this);
knapp2.addActionListener(this);
knapp3.addActionListener(this);
item1.addActionListener(this);
item2.addActionListener(this);
item3.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
Object src = e.getSource();
if(src == knapp1) {
lbl2.setVisible(false);
scrollyta.setVisible(false);
lbl1.setVisible(true);
} else if(src == knapp2) {
lbl1.setVisible(false);
scrollyta.setVisible(false);
lbl2.setVisible(true);
} else if(src == knapp3) {
lbl1.setVisible(false);
lbl2.setVisible(false);
scrollyta.setVisible(true);
} else if(src == item1) {
System.exit(0);
} else if(src == item2) {
textarea.setText(text1 + textfält.getText());// fylla på innehåll från textfält och gammal text från textarea
text1 = (text1 + textfält.getText());// fylla på innehåll från textfält och gammal text från textarea
textfält.setText("");// gör textfält tomt
} else if(src == item3) {
textarea.setText("");// gör textarea tomt
}
}
public static void main(String[] args) {
new Projekt();
}
}
[/HIGHLIGHT]

Und hier hab ich eig nix gemacht:

[HIGHLIGHT="Java"]
package de;

import java.awt.Color;
import java.awt.Container;
import java.awt.GridBagLayout;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class Ramen extends JFrame {
private static final long serialVersionUID = 1L;

public JMenuBar mbar;
public JMenu meny1, meny2;
public JMenuItem item1, item2, item3;
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();

public Ramen() {
mbar = new JMenuBar();
meny1 = new JMenu("Arkiv");
meny2 = new JMenu("Info");
item1 = new JMenuItem("Avsluta");
item2 = new JMenuItem("Lägg till text");
item3 = new JMenuItem("Radera text");

setJMenuBar(mbar);
mbar.add(meny1);
mbar.add(meny2);

meny1.add(item1);
meny2.add(item2);
meny2.add(item3);

Container c = getContentPane();
c.setLayout(new GridBagLayout());

c.setBackground(Color.WHITE);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
pack();
}

}
[/HIGHLIGHT]

Hier sind allerdings ein paar Sachen überflüssig, da die in der Subclass überschrieben werden ^^
z.B.: pack, setVisible, setDefaultCloseOperation
 

clou

Mitglied
Klar doch. Ist echt supernett, dass du dir so viel Mühe machst.

Subclass:
Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;



public class Projekt extends Ramen
{
	//private JTextField tx1;
    private String text1;
    /*private JTextField tx1;
    private String text1;
    private JMenuBar mbar;
    private JMenu meny1, meny2;
  	private JMenuItem item1, item2, item3;
*/


void buildConstraints(GridBagConstraints gbc, int gx, int gy,
        int gw, int gh, int wx, int wy) {

        gbc.gridx = gx;
        gbc.gridy = gy;
        gbc.gridwidth = gw;
        gbc.gridheight = gh;
        gbc.weightx = wx;
        gbc.weighty = wy;
    }


  public Projekt()
  {

	//JTextField textfält;
	//JTextArea textarea;
	//JButton knapp1, knapp2, knapp3;
	//JScrollPane scrollyta;
	//JLabel lbl1, lbl2, lbl3;
	//ImageIcon bild1, bild2;
	text1=("");

setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        GridBagLayout gridbag = new GridBagLayout();
        GridBagConstraints constraints = new GridBagConstraints();
        JPanel pane = new JPanel();
        final JScrollPane scrollyta = new JScrollPane();
        pane.setLayout(gridbag);

        // textfield
        buildConstraints(constraints, 0, 0, 5, 1, 100, 0);
        constraints.fill = GridBagConstraints.HORIZONTAL;
        final JTextField textfält = new JTextField();
        gridbag.setConstraints(textfält, constraints);
        pane.add(textfält);

        // tomt platshåller
        buildConstraints(constraints, 0, 1, 1, 1, 0, 0);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.EAST;
        JLabel label1 = new JLabel("                    ", JLabel.LEFT);
        gridbag.setConstraints(label1, constraints);
        pane.add(label1);

		// knapp1
        buildConstraints(constraints, 1, 1, 1, 1, 0, 0);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.CENTER;
        JButton knapp1 = new JButton("Bild 1");
        gridbag.setConstraints(knapp1, constraints);
        pane.add(knapp1);

		// knapp2
        buildConstraints(constraints, 2, 1, 1, 1, 0, 0);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.CENTER;
        JButton knapp2 = new JButton("Bild 2");
        gridbag.setConstraints(knapp2, constraints);
        pane.add(knapp2);

        // knapp3
		buildConstraints(constraints, 3, 1, 1, 1, 0, 0);
		constraints.fill = GridBagConstraints.NONE;
		constraints.anchor = GridBagConstraints.CENTER;
		JButton knapp3 = new JButton("Text area");
		gridbag.setConstraints(knapp3, constraints);
        pane.add(knapp3);


		// Label 1 (Bild 1)
		buildConstraints(constraints, 0, 2, 5, 10, 100, 100);
		constraints.fill = GridBagConstraints.BOTH;
		final JLabel lbl1 = new JLabel(new ImageIcon("wave.gif"),
		SwingConstants.CENTER//inte nödvändig, men skadar inte
	    );

        gridbag.setConstraints(lbl1, constraints);
        pane.add(lbl1);


		// Label 2 (Bild 2)
		buildConstraints(constraints, 0, 2, 5, 10, 100, 100);
		constraints.fill = GridBagConstraints.BOTH;
		final JLabel lbl2 = new JLabel(new ImageIcon("surf.jpg"),
		SwingConstants.CENTER//inte nödvändig, men skadar inte
	    );

        gridbag.setConstraints(lbl2, constraints);
        pane.add(lbl2);
        lbl2.setVisible(false);


        // textarea
		buildConstraints(constraints, 0, 2, 5, 10, 100, 100);
		constraints.fill = GridBagConstraints.BOTH;
		final JTextArea textarea = new JTextArea();
		gridbag.setConstraints(textarea, constraints);
		pane.add(textarea);
		//pane.add(new JScrollPane(textarea));


		textarea.setVisible(false);




		// Content Pane
		setContentPane(pane);
        setVisible(true);



		// knapp 1
		knapp1.addActionListener
		        (
		            new ActionListener()
		            {
		                public void actionPerformed( ActionEvent event )
		                {

		lbl2.setVisible(false);
        textarea.setVisible(false);
        lbl1.setVisible(true);

		                }
		            }
        );


        // knapp 2
		knapp2.addActionListener
		        (
		            new ActionListener()
		            {
		                public void actionPerformed( ActionEvent event )
		                {

		lbl1.setVisible(false);
        textarea.setVisible(false);
        lbl2.setVisible(true);

		                }
		            }
        );

 		// knapp 3
		knapp3.addActionListener
		        (
		            new ActionListener()
		            {
		                public void actionPerformed( ActionEvent event )
		                {

		lbl1.setVisible(false);
        lbl2.setVisible(false);
        textarea.setVisible(true);
		textarea.add((scrollyta), BorderLayout.CENTER);
		scrollyta.setVisible(true);

		                }
		            }
        );



// item1 - avsluta
item1.addActionListener
        (
            new ActionListener()
            {
                public void actionPerformed( ActionEvent event )
                {
                    System.exit( 0 );
                }
            }
        );

// item2 - lägg till text
item2.addActionListener
        (
            new ActionListener()
            {
                public void actionPerformed( ActionEvent event )
                {
        textarea.setText(text1 + textfält.getText());//fylla på innehåll från textfält och gammal text från textarea
        text1=(text1 + textfält.getText());//fylla på innehåll från textfält och gammal text från textarea
		textfält.setText("");// gör textfält tomt
                }
            }
        );

// item3 - radera text
item3.addActionListener
        (
            new ActionListener()
            {
                public void actionPerformed( ActionEvent event )
                {
        textarea.setText("");// gör textarea tomt
                }
            }
        );



   }


   public static void main(String [] args)
   {
       Projekt test = new Projekt();
   }
}

Superclass:
Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Ramen extends JFrame
{
    // deklarera variabler
    public JMenuBar mbar;
    public JMenu meny1, meny2;
  	public JMenuItem item1, item2, item3;
  	// behövs inte:
  	//JPanel panel1 = new JPanel();
	//JPanel panel2 = new JPanel();

  public Ramen()
  {
	  super("Projekt av Clou");

	  // producera menyer
	  mbar = new JMenuBar();
	  meny1 = new JMenu("Arkiv");
	  meny2 = new JMenu("Info");
	  item1 = new JMenuItem("Avsluta");
	  item2 = new JMenuItem("Lägg till text");
	  item3 = new JMenuItem("Radera text");

      setJMenuBar(mbar);
      mbar.add(meny1);
      mbar.add(meny2);

      meny1.add(item1); meny2.add(item2); meny2.add(item3);

       // använda layoutmanager GridBagLayout
       Container c = getContentPane();
       c.setLayout(new GridBagLayout());

       c.setBackground(Color.WHITE);
       setDefaultCloseOperation(EXIT_ON_CLOSE);
       setVisible(true);
       pack();
   }

}
 
M

MiDniGG

Gast
So. Das schau ich mir jetzt aber nicht mehr an ;) Hab jetzt genug gemacht :D
Wenn Du fragen zu meinem Code hast stell sie und ich kümmer mich drum. Aber vermutlich erst morgen ;)
Schönen Freitag, den 13. noch :D:D:D
 

clou

Mitglied
das stimmt, du hast wahrlich genug gemacht. Gut, dass dir langweilig ist ;-)

Viiiiielen Dank nochmal für deine geschätzte Mühe.

Aber dein Code wird bei mir nicht kompiliert (dummguck). Haufen Fehlermeldungen:

Code:
E:\Java\Kurs\Projekt\Neuer Ordner\Projekt.java:7: cannot resolve symbol
symbol  : class Ramen  
location: class de.Projekt
public class Projekt extends Ramen implements ActionListener {
                             ^
E:\Java\Kurs\Projekt\Neuer Ordner\Projekt.java:39: cannot resolve symbol
symbol  : method setSize  (int,int)
location: class de.Projekt
        setSize(500, 400);
        ^
E:\Java\Kurs\Projekt\Neuer Ordner\Projekt.java:40: cannot resolve symbol
symbol  : method setDefaultCloseOperation  (int)
location: class de.Projekt
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ^
E:\Java\Kurs\Projekt\Neuer Ordner\Projekt.java:112: cannot resolve symbol
symbol  : method setContentPane  (javax.swing.JPanel)
location: class de.Projekt
        setContentPane(pane);
        ^
E:\Java\Kurs\Projekt\Neuer Ordner\Projekt.java:113: cannot resolve symbol
symbol  : method setVisible  (boolean)
location: class de.Projekt
        setVisible(true);
        ^
E:\Java\Kurs\Projekt\Neuer Ordner\Projekt.java:118: cannot resolve symbol
symbol  : variable item1  
location: class de.Projekt
        item1.addActionListener(this);
        ^
E:\Java\Kurs\Projekt\Neuer Ordner\Projekt.java:119: cannot resolve symbol
symbol  : variable item2  
location: class de.Projekt
        item2.addActionListener(this);
        ^
E:\Java\Kurs\Projekt\Neuer Ordner\Projekt.java:120: cannot resolve symbol
symbol  : variable item3  
location: class de.Projekt
        item3.addActionListener(this);
        ^
E:\Java\Kurs\Projekt\Neuer Ordner\Projekt.java:136: cannot resolve symbol
symbol  : variable item1  
location: class de.Projekt
        } else if(src == item1) {
                         ^
E:\Java\Kurs\Projekt\Neuer Ordner\Projekt.java:138: cannot resolve symbol
symbol  : variable item2  
location: class de.Projekt
        } else if(src == item2) {
                         ^
E:\Java\Kurs\Projekt\Neuer Ordner\Projekt.java:142: cannot resolve symbol
symbol  : variable item3  
location: class de.Projekt
        } else if(src == item3) {
                         ^
11 errors

Tool completed with exit code 1

Weißt du, woran das liegt? Ich kann mir das erst später angucken. Habe gerade meine Theorie-Aufgabe runtergeladen und habe nur noch zweieinhalb Stunden dafür Zeit. Wenn du aber keine Lust oder Zeit mehr hast nehm ich dir das keinesfalls übel, es ist schon erstaunlich, was du alles für mich machst, auch wenn's noch nicht zu einer Lösung kam. Danke nochmals. Danke, Danke, Danke.
 
M

MiDniGG

Gast
Hm. Ohne das anzuschaun ^^ Ich hab bei mir en Package in der ersten Zeile angegeben. Hast Du das rausgemacht? WEnn nicht wird es wohl daran liegen :)

Edit: Habs mir angeschaut. Es liegt daran! ;)
 
Zuletzt bearbeitet von einem Moderator:

clou

Mitglied
@MiDniGG: ICH VERNEIGE MICH VOR DIR.

Herzlichen Dank für deine unendliche Geduld und Mühe. Ich habe zwar dennoch meine schlampige Arbeit verwendet (will ja nicht was einschicken, was nicht von mir ist), habe aber soweit umbauen können, dass jetzt die Scrollleiste funktioniert. Dank deiner Hilfe.

Jetzt nur noch Feinarbeit und schön kommentieren, dann schick ich es gerade noch rechtzeitig vor 24 Uhr zu meinem Lehrer.

Vielen Dank nochmal, Danke, Danke, Danke.

LG
Clou
 
M

MiDniGG

Gast
Na dann is ja nochmal alles gut gelaufen :D
Hab ich das jetzt richtig verstanden, dass Du in Schweden eine Schule besuchst? Bist Du ausgewandert oder so?! Kannst ja ma per PM schreiben ;)
Und, hast Du den Titel des Threads geändert? ^^ Hab ihn irgendwie anderst in Erinnerung :D
Verfluchter Alkohol :D
 

L-ectron-X

Gesperrter Benutzer
hast Du den Titel des Threads geändert? ^^ Hab ihn irgendwie anderst in Erinnerung :D
Den Titel habe ich angepasst. Einfach nur "JScrollPane" sagt von außen absolut nichts über das Problem aus.
Das Thema soll ja mal von irgendwem wiedergefunden werden können. Je relevanter der Titel zum Problem des Suchenden, um so weniger Arbeit werden wir hier haben.
Es macht keinen Sinn, alles doppelt und dreifach zu erzählen, nur weil die Threadtitel nichts aussagen.
 
Zuletzt bearbeitet:
M

MiDniGG

Gast
Den Titel habe ich angepasst. Einfach nur "JScrollPane" sagt von außen absolut nichts über das Problem aus.
Das Thema soll ja mal von irgendwem wiedergefunden werden können. Je relevanter der Titel zum Problem des Suchenden, um so weniger Arbeit werden wir hier haben.
Es macht keinen Sinn, alles doppelt und dreifach zu erzählen, nur weil die Threadtitel nichts aussagen.

Alles klar. Dacht ich mir ja schon halbe, dass Du das warst ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JTextarea (in JScrollPane) zeigt nur die beiden letzten Einträge an? AWT, Swing, JavaFX & SWT 0
T Swing Mehrere Ausgaben in JTextArea AWT, Swing, JavaFX & SWT 2
B JPanel-Inhalte inkl. JTextarea zoomen? AWT, Swing, JavaFX & SWT 3
RedEagle Swing JTextArea ist leer AWT, Swing, JavaFX & SWT 13
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
E wie in JScrollPane auf JTextArea zugreifen AWT, Swing, JavaFX & SWT 12
K Swing 2 JTextArea parrallel scrollable AWT, Swing, JavaFX & SWT 16
Hatsi09 JTextArea Inhalt verlinken AWT, Swing, JavaFX & SWT 4
ralfb1105 jTextArea Scrollbar hinzufügen - mit Jigloo erstellt AWT, Swing, JavaFX & SWT 7
S Ausgabe in JTextArea AWT, Swing, JavaFX & SWT 13
H JTextArea - farbige Zeilen .. bitte um Vorschläge zur Implementierung AWT, Swing, JavaFX & SWT 1
F 2D-Grafik JTextArea drucken bringt mieses Ergebnis AWT, Swing, JavaFX & SWT 2
Mario1409 Swing JTextArea scroll Problem AWT, Swing, JavaFX & SWT 0
Bluedaishi JTextArea gefundene Zeile nach Oben Scrollen AWT, Swing, JavaFX & SWT 13
S JTextArea Text nach oben wandern lassen AWT, Swing, JavaFX & SWT 7
Bluedaishi JtextArea AWT, Swing, JavaFX & SWT 6
V JScrollBar soll weiterscrollen, wenn Inhalt von JTextArea erweitert wird AWT, Swing, JavaFX & SWT 7
G JTextArea mit JScrollPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
Bluedaishi JDialog modal und JTextArea AWT, Swing, JavaFX & SWT 4
F JTextarea Steuern ~ consolenanbindung AWT, Swing, JavaFX & SWT 5
F Event Handling JTextArea auf bestimmte Eingabe reagieren (Return-Taste) AWT, Swing, JavaFX & SWT 2
F JTextArea hat keinen Rahmen AWT, Swing, JavaFX & SWT 10
N JTextArea Events weiterleiten AWT, Swing, JavaFX & SWT 3
R JTextArea mit verschiedenen Textfarben AWT, Swing, JavaFX & SWT 6
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
HoloYoitsu jTextArea.setCaretPosition(); What am I doing wrong? AWT, Swing, JavaFX & SWT 0
S Zeilenumbruch jTextArea mit toString AWT, Swing, JavaFX & SWT 2
F Swing String[] in JTextArea ausgeben. Jeder Eintrag in neue Zeile, aber ohne "\n"- Geht das? AWT, Swing, JavaFX & SWT 3
M JTextArea - Leertaste "sperren" AWT, Swing, JavaFX & SWT 1
S Inhalt der Java-Konsole in die JTextArea AWT, Swing, JavaFX & SWT 3
M Swing JTextArea mit ScrollBar AWT, Swing, JavaFX & SWT 9
S Swing Zahl der Zeilenumbrüche in einer JTextArea bestimmen AWT, Swing, JavaFX & SWT 1
F Swing Caret in JTextArea vergrößern AWT, Swing, JavaFX & SWT 2
D JTextArea auf KeyListener Command AWT, Swing, JavaFX & SWT 6
N JFrame änliches wie JTextArea? AWT, Swing, JavaFX & SWT 2
A Swing JTextArea - Multi-Line-Editing AWT, Swing, JavaFX & SWT 2
A Swing JTextArea aus anderer Klasse in realtime aktualisieren AWT, Swing, JavaFX & SWT 3
O JTextArea befüllen AWT, Swing, JavaFX & SWT 2
G JTextArea on the fly aus anderem Programm befüllen AWT, Swing, JavaFX & SWT 4
A Swing Einrücken mehrerer Zeilen per Tab in einem JTextPane/JTextArea AWT, Swing, JavaFX & SWT 3
T Swing Ausgabe aus ArrayList in Klasse1 in jTextArea in Klasse2 AWT, Swing, JavaFX & SWT 2
B JTextArea Größe an Container anpassen AWT, Swing, JavaFX & SWT 2
B Drucken der JTextArea AWT, Swing, JavaFX & SWT 4
M JTextArea Zeile hinzufügen AWT, Swing, JavaFX & SWT 4
C JTextArea scrollt bei append(String) aus Threads nicht ans Ende AWT, Swing, JavaFX & SWT 7
P JPanel- Listener durch JTextArea aktivieren AWT, Swing, JavaFX & SWT 8
A JTextArea - Zeichenbegrenzung nach .txt Datei import AWT, Swing, JavaFX & SWT 6
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
Hoppelmann Swing Tasten in JTextArea blockieren AWT, Swing, JavaFX & SWT 2
S JTextArea Tastaturanschläge AWT, Swing, JavaFX & SWT 2
E Swing JTextArea in JFrame, wie nun WindowFocusListener implementieren? AWT, Swing, JavaFX & SWT 2
S Problem mit JButton und JTextArea AWT, Swing, JavaFX & SWT 2
J Swing Mitwachsende JTextArea+ JPanel AWT, Swing, JavaFX & SWT 4
P Swing JtextArea füllen mit setText AWT, Swing, JavaFX & SWT 7
M Probleme mit der Selektion einer JTextArea AWT, Swing, JavaFX & SWT 3
T Die Größe einer JTextArea an Ihren Parent JPanel anpassen. AWT, Swing, JavaFX & SWT 5
hdi Swing ListCellRenderer + JTextArea + LineWrap AWT, Swing, JavaFX & SWT 6
T ComponentOrientation in JTextArea AWT, Swing, JavaFX & SWT 3
H Hintergrundbild in jTextArea AWT, Swing, JavaFX & SWT 4
G Swing JTextArea mit fester Anzahl Spalten! AWT, Swing, JavaFX & SWT 10
G ein JTextArea in zwei JPanels AWT, Swing, JavaFX & SWT 2
L JTextArea mit JScrollPane AWT, Swing, JavaFX & SWT 7
padde479 Swing replace JTextArea funktioniert nicht AWT, Swing, JavaFX & SWT 2
L Zeilenumbrüche aus JTextArea MIT in Textdatei schreiben AWT, Swing, JavaFX & SWT 4
_dp jTextArea/jTextPanel Auto Höhe AWT, Swing, JavaFX & SWT 5
Ollek JTextArea - Feste Zeilenanzahl(8 Zeilen) AWT, Swing, JavaFX & SWT 3
S Swing JTextArea während der Laufzeit füllen AWT, Swing, JavaFX & SWT 5
Ollek Text in JTextField und JTextArea zur Laufzeit ändern AWT, Swing, JavaFX & SWT 6
P Datenelement anderer Klasse in JTextArea ausgeben AWT, Swing, JavaFX & SWT 4
P Scrollbar JTextArea AWT, Swing, JavaFX & SWT 23
M Swing Ausgabe in JTextArea verzögern AWT, Swing, JavaFX & SWT 7
T Swing jTextArea soll sich der Fenstergröße anpassen beim ziehen?? AWT, Swing, JavaFX & SWT 2
S System.out in JTextArea AWT, Swing, JavaFX & SWT 4
S Swing JTextArea - Bild auf/ab Tasten implementieren AWT, Swing, JavaFX & SWT 4
J JTextArea verschwindet bei resize vom JFrame AWT, Swing, JavaFX & SWT 2
VfL_Freak "setAccelerator/KeyStroke" bei JTextArea ? AWT, Swing, JavaFX & SWT 6
P Swing JTextArea - beim neuzeichnen bleibt manchmal weißer Kasten AWT, Swing, JavaFX & SWT 10
Dit_ JTextArea zu Zeile X scrollen AWT, Swing, JavaFX & SWT 4
H variable Höhe einer JTextArea (als Renderer/Editor) als Zelle einer JTable AWT, Swing, JavaFX & SWT 9
B Wechsel JTextArea und JComponent AWT, Swing, JavaFX & SWT 9
M [erledigt] Bestimmte Zeile aus JTextArea löschen AWT, Swing, JavaFX & SWT 3
G Swing JTable und JTextArea synchronisieren AWT, Swing, JavaFX & SWT 2
C JLabel, JTextArea, JScrollPane. repaint(); ? AWT, Swing, JavaFX & SWT 6
M JTextArea AWT, Swing, JavaFX & SWT 2
E Swing JTextArea Alternative? AWT, Swing, JavaFX & SWT 5
A Swing JTextArea über Frame hinaus anzeigen? AWT, Swing, JavaFX & SWT 2
S JInternalFrame oder JTextArea neu laden AWT, Swing, JavaFX & SWT 2
N JTextArea.setLineWrap Bug? AWT, Swing, JavaFX & SWT 3
N Swing JTextArea/JScrollpane: JScrollbar position AWT, Swing, JavaFX & SWT 8
I JTextArea mit Copy Paste Funktion AWT, Swing, JavaFX & SWT 7
M Swing JTextArea größe anpassen & setBackground liefer Nullpointer AWT, Swing, JavaFX & SWT 4
Plastagen JTextArea CaretPosition Aktualisierung AWT, Swing, JavaFX & SWT 10
C JTextField und JTextArea - Verständnisproblem AWT, Swing, JavaFX & SWT 14
B Exceptions werfen und in JTextArea ausgeben AWT, Swing, JavaFX & SWT 4
F new Line in JTextarea AWT, Swing, JavaFX & SWT 15
X Problem bei JTextArea und Thread.sleep() AWT, Swing, JavaFX & SWT 8
J Beliebtes Problem: Scrollbar in JTextArea AWT, Swing, JavaFX & SWT 4
w0ddes Swing JTextArea auf JScrollPane - Autoscroll?! AWT, Swing, JavaFX & SWT 2
Developer_X Swing Java JTextArea auto scroll down AWT, Swing, JavaFX & SWT 6
T Swing JTextArea, JTextPane, JEditorPane...Unterschied?! AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben