---
title: "Problem med ActionListener"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/81719-problem-med-actionlistener"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "Rödalacket"
published: "2003-07-10T02:49:34.000Z"
updated: "2003-07-10T03:28:20.000Z"
replies: 1
views: 555
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/81719-problem-med-actionlistener"
---

# Problem med ActionListener

## #1 — Rödalacket, 2003-07-10T02:49Z

Jag har två filer, MainFrame och MyButton, den ena skapar en frame och den andra skapar knappar 
som skall ligga i MainFrame och det funkar alldeles utmärkt. 
Nu vill man säkert att något skall hända när man trycker på en knapp och det är då problemen kommer.
Koden för MainFrame ser ut så här:

```
//MainFrame.java

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

public class MainFrame implements ActionListener{
	
	static JFrame mainFrame;
	
	public MainFrame(){
		mainFrame = new JFrame("webForum");
		mainFrame.setSize(500, 300);
		ButtonLayout.buttonMaker();
		mainFrame.setVisible(true);
	}
	public static void main(String args[]) {
		new MainFrame();
	}
	
	public static void addButton(JPanel buttonPanel){
		mainFrame.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
	}
	
	public void actionPerformed(ActionEvent e) {
    		if ("Ok".equals(e.getActionCommand())) {
			mainFrame.setBackground(new Color(255, 0, 0));
        	}
    	}
}
```

och för MyButton:

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

public class ButtonLayout implements ActionListener{
	static JPanel buttonPanel;
	static JButton okButton, aboutButton;
	
	public static void buttonMaker(){
		buttonPanel = new JPanel(new GridLayout(1, 1));
		okButton = new JButton("Ok");
		aboutButton = new JButton("Om");
		
		okButton.setActionCommand("Ok");
		//okButton.addActionListener(this);[red][b]//PROBLEM[/b][/red]
		
		buttonPanel.add(okButton);
		buttonPanel.add(aboutButton);
		MainFrame.addButton(buttonPanel);
	}
	public void actionPerformed(ActionEvent e) {//??
    		if ("Ok".equals(e.getActionCommand())) {

        	}
    	}
}
```

Felet jag får är
non-static variable this cannot be referenced from a static contex
Hur gör jag för att få knapparna att fungera och inte bara vara "döda" knappar?

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

## #2 — Rödalacket, 2003-07-10T03:28Z

Hmm, nu verkar det funka.
Ändrade *public static void buttonMaker(){* till 
*public void buttonMaker(){* och 

```
public MainFrame(){
	mainFrame = new JFrame("webForum");
	mainFrame.setSize(500, 300);
	ButtonLayout.buttonMaker();
	mainFrame.setVisible(true);
}
```

fick bli

```
public MainFrame(){
	mainFrame = new JFrame("webForum");
	mainFrame.setSize(500, 300);
        ButtonLayout bl = new ButtonLayout();
	bl.buttonMaker();
	mainFrame.setVisible(true);
}
```

 :)

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

---

Tråden på webben: https://www.webforum.nu/amne/java/81719-problem-med-actionlistener
