---
title: "JTabbedPane med flera paneler från klasser"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/91883-jtabbedpane-med-flera-paneler-från-klasser"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "Mc Fetto"
published: "2003-12-04T15:05:01.000Z"
updated: "2003-12-04T18:51:22.000Z"
replies: 3
views: 188
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/91883-jtabbedpane-med-flera-paneler-från-klasser"
---

# JTabbedPane med flera paneler från klasser

## #1 — Mc Fetto, 2003-12-04T15:05Z

Jag har en JTabbedPane som jag lägger till ett par paneler, genom att kalla på olika klasser. Dessa klasser ärver ifrån JPanel.

Detta för att sedan enkelt kunna ändra layout m m..

ex på klass:

```
class StudentPanel extends JPanel
	{
		private JButton jButton1;
		private JLabel jLabel1;
		private JLabel jLabel2;
		private JLabel jLabel3;
		private JLabel jLabel4;
		private JLabel jLabel5;
		private JLabel jLabel6;
		public JTextArea jTextArea1;
		private JTextField jTextField1;
		private JTextField jTextField2;
		private JTextField jTextField3;
		private JTextField jTextField4;
		
		 StudentPanel() 
		 { 
		 	
			jLabel1 = new JLabel();
			jPanel1 = new JPanel();
			jLabel2 = new JLabel();
			jTextArea1 = new JTextArea();
			jLabel3 = new JLabel();
			jLabel4 = new JLabel();
			jLabel5 = new JLabel();
			jLabel6 = new JLabel();
			jTextField1 = new JTextField();
			jTextField2 = new JTextField();
			jTextField3 = new JTextField();
			jTextField4 = new JTextField();
			jButton1 = new JButton();
			
			this.setLayout(null);
	
			jLabel2.setText("Students");
			this.add(jLabel2);
			jLabel2.setBounds(20, 20, 51, 16);
	
			jTextArea1.setColumns(20);
			jTextArea1.setEditable(false);
			jTextArea1.setRows(20);
			this.add(jTextArea1);
			jTextArea1.setBounds(20, 40, 240, 310);
	
			jLabel3.setText("Name:");
			this.add(jLabel3);
			jLabel3.setBounds(290, 40, 36, 16);
	
			jLabel4.setText("Age:");
			this.add(jLabel4);
			jLabel4.setBounds(290, 70, 25, 16);
	
			jLabel5.setText("Wheight:");
			this.add(jLabel5);
			jLabel5.setBounds(290, 100, 50, 16);
	
			jLabel6.setText("Length:");
			this.add(jLabel6);
			jLabel6.setBounds(290, 130, 60, 16);
	
			this.add(jTextField1);
			jTextField1.setBounds(350, 40, 150, 20);
	
			this.add(jTextField2);
			jTextField2.setBounds(350, 70, 150, 20);
	
			this.add(jTextField3);
			jTextField3.setBounds(350, 100, 150, 20);
	
			this.add(jTextField4);
			jTextField4.setBounds(350, 130, 150, 20);
	
			jButton1.setText("Add student");
			this.add(jButton1);
			jButton1.setBounds(391, 170, 110, 26);
	
			getContentPane().add(this, java.awt.BorderLayout.CENTER);
		 }	
	 }
```

 

Inga problem så länga man inte vill leka md komponenterna i klassen! Då får jag felet: Cannot make a static reference to the non-static field StudentPanel.jTextArea1	MainClass.java.

Felet är denna rad:

```
StudentPanel.jTextArea1.append((String)element);
```

 

Hur gör jag så att jag kommer åt komponenterna i klassen?

Permalänk: https://www.webforum.nu/p/91883

## #2 — phonkworks, 2003-12-04T16:55Z

Tjena!

Om du vill komma åt jTextArea1 på det viset måste du deklarera den som static:

```
public static JTextArea jTextArea1;
```

Eller också gör du en get metod

```
private JTextArea jTextArea1;
....

public JTextArea getTextArea() {
   return jTextArea1;
}
```

mvh
phonk

Permalänk: https://www.webforum.nu/p/1220574

## #3 — SPiN, 2003-12-04T18:42Z

phonk\> Gör han en metod kommer han ändå inte åt den om inte metoden är deklarerad 'static'.

Mc Fetto\> Varför inte skapa en instans av StudentPanel? Då kommer du runt problemet.

```
StudentPanel sPane = new StudentPanel();
sPane.jTextArea1.append( "..." );
```

 :q

Permalänk: https://www.webforum.nu/p/1220646

## #4 — Mc Fetto, 2003-12-04T18:51Z

Det gjorde jag sen, tack för tipsen! Då jag inte är så hemma på java, så blev jag tvungen att ha en actionlistener i varje klass och om jag då vill skicka data mellan dem.. Alltså om en panel blir OnFocus så ska en arraylist loopas igenom och skriva ut datan i ett textfält på panelen, vet inte riktigt om jag förklarat på ett förståeligt sätt...

Permalänk: https://www.webforum.nu/p/1220648

---

Tråden på webben: https://www.webforum.nu/amne/java/91883-jtabbedpane-med-flera-paneler-från-klasser
