Hallo liebe Community,
wie kann ich hier meinen MenuItems einen Listener hinzufügen ohne die Variablen global bzw. statisch zu machen.
Habe es mit listenTo versucht aber nichts geht. Danke für Hilfe.
Code:
grüße Spin
wie kann ich hier meinen MenuItems einen Listener hinzufügen ohne die Variablen global bzw. statisch zu machen.
Habe es mit listenTo versucht aber nichts geht. Danke für Hilfe.
Code:
Java:
import scala.swing._
import java.awt.{Dimension, Point, Toolkit}
import javax.swing.UIManager
import java.awt.event.ActionListener
object Main extends SimpleSwingApplication {
/**
* frame height
*/
val height:Int = 480;
/**
* frame width
*/
val width:Int = 640;
/**
* create main frame
* @override
*/
override def top = new MainFrame {
this.title = "Gamedevelopment in Scala"
this.location = Main.getCenterLocation()
this.size = new Dimension(Main.width, Main.height)
this.maximumSize = new Dimension(Main.width, Main.height)
//look and feel
Main.changeLookAndFeel()
//this.iconImage = Toolkit.getDefaultToolkit.getImage(Main.resourceFromClassloader(''))
// menu bar
this.menuBar = Main.getMenuBar()
}
/**
* get center location depends on screen size
*/
def getCenterLocation() : Point = {
// get current screen size
val screenSize = Toolkit.getDefaultToolkit.getScreenSize()
val location = new Point((screenSize.width/2) - (Main.width/2),
(screenSize.height/2) - (Main.height/2))
return location
}
/**
* change to a nimbus look and feel
*/
def changeLookAndFeel() : Unit = {
try{
// set new look and feel
UIManager.setLookAndFeel(new com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel);
} catch {
// catch default case_
case _ => UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
}
/**
* get frame menu bar
*/
def getMenuBar() : MenuBar = {
val menuBar = new MenuBar {
// component buffer
contents += new Menu("File"){
contents += new MenuItem("New")
contents += new Separator()
contents += new MenuItem("Quit")
}
contents += new Menu("Help"){
contents += new MenuItem("About")
}
}
return menuBar
}
}
grüße Spin