Normaal gesproken programmeerde ik GUI's altijd met het java.awt package. Daarin kon je events afhandelen door simpelweg een methode met de naam handleEvent(Event evt) te plaatsen. Maar nu wilde ik het eens proberen in Swing. Maar als ik daar op een JButton druk, doet mijn handleEvent methode helemaal nix. Hoe zit de Event-structuur bij Swing in elkaar ? Ik heb gezocht op google en ik heb mijn vraag ook al gepost bij het javahova forum , maar ik heb nog nix gevonden. Wie maakt mijn dag weer goed ??
Net zoals in AWT moet je tegenwoordig voor nette-event afhandeling gebruik maken van Listeners. handleEvent(..) is echt behoorlijk not-done. Op een button kan je bijvoorbeeld een ActionListener aanmelden. De methode actionPerformed wordt aangeroepen als er op de knop wordt gedrukt.
Kijk eens naar java.awt.event.* of blader eens door de Java Tutorial..
Kijk eens naar java.awt.event.* of blader eens door de Java Tutorial..
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Verwijderd
http://java.sun.com/docs/books/tutorial/uiswing/index.html
en daar het onderdeel:
http://java.sun.com/docs/books/tutorial/uiswing/overview/event.html
Duidelijker zou ik het niet uit kunnen leggen
Groeten,
Tim
en daar het onderdeel:
http://java.sun.com/docs/books/tutorial/uiswing/overview/event.html
Duidelijker zou ik het niet uit kunnen leggen
Groeten,
Tim
OK, bedankt mbravenboer. Ik zag op je site (www.pandoramix.org) en op de JavaHova site (www.javahova.net) dat jij al meer met swing hebt gewerkt
alleen jammer dat beide sites nog niet helemaal in de lucht zijn
Ach, ik pruts af en toe watMisterJava: Ik zag op je site dat jij al meer met swing hebt gewerkt
De libraries zijn nog niet stabiel genoeg naar mijn zin en ik heb geen tijd om documentatie te schrijven. Tot die tijd ben ik de enige die geniet van m'n libsalleen jammer dat beide sites nog niet helemaal in de lucht zijn
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
OK
Maar weet jij toevallig ook hoe je kunt kijken wat het Target is van een ActionEvent ?? En is een ActionEvent te converteren naar een java.awt.Event ??
Misschien een goed idee om de API docs eens te bekijken?MisterJava: OKMaar weet jij toevallig ook hoe je kunt kijken wat het Target is van een ActionEvent ?? En is een ActionEvent te converteren naar een java.awt.Event ??
java.awt.event.ActionEvent extends java.awt.AWTEventclass java.awt.Event: The Event class is obsolete and is available only for backwards compatilibility. It has been replaced by the AWTEvent class and its subclasses
java.awt.AWTEvent extends java.util.EventObject
EventObject heeft een methode getSource().
Overigens is het meestal mooier om die niet te gebruiken, maar om een aparte ActionListener te gebruiken voor je buttons. Gevalsonderscheid in een listener (controller) vind ik erg lelijk.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
OK bedankt
Programmeurs zijn meestal lui, ik ben er ook zo een
Maar iig bedankt. Ik had dat zelf ook wel kunnen zoeken in de API Docs, maar ik zou niet weten waar die bij mijn J2SE zitten. (ik nl. heel lang geprogrammeerd met JDK1.1 , vandaar ook die vraag over die events)
Docs zitten niet standaard bij de SDK. Anders is hij namelijk nog twee keer zo groot
. Ze staan wel online en je kan zo ook downloaden:
Downloaden: http://java.sun.com/j2se/1.4/
Online: http://java.sun.com/j2se/1.4/docs/api
Downloaden: http://java.sun.com/j2se/1.4/
Online: http://java.sun.com/j2se/1.4/docs/api
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Ik zie trouwens op javahova dat Alarmnummer nog even op Actions was ingegaan. Je bent idd pas echt cool als je die gebruikt, dus kijk daar ff goed naar
.
Actions hebben behoorlijk wat voordelen boven gewone ActionListeners. Ik gebruik ze zelf werkelijk voor alles, omdat ik altijd werk in een volledig scheiding van GUI en Controller. Je kunt dan met behulp van actions heel makkelijk knoppen disablen in de GUI. Actions volgen een beetje het MVC model:
Action - Model,
actionPerformed implementatie - Controller (doe ik nooit in de action zelf)
Button/MenuItem/watdanook - View.
Actions hebben behoorlijk wat voordelen boven gewone ActionListeners. Ik gebruik ze zelf werkelijk voor alles, omdat ik altijd werk in een volledig scheiding van GUI en Controller. Je kunt dan met behulp van actions heel makkelijk knoppen disablen in de GUI. Actions volgen een beetje het MVC model:
Action - Model,
actionPerformed implementatie - Controller (doe ik nooit in de action zelf)
Button/MenuItem/watdanook - View.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
hier :
http://www.wasigh.com/javahova/forum/viewtopic.php?fid=1&tid=46
't is gewoon een reactie op je eigen topic
http://www.wasigh.com/javahova/forum/viewtopic.php?fid=1&tid=46
't is gewoon een reactie op je eigen topic
FF nog snel een heel kort vraagje (ik heb geen zin om daar een heel topic voor te openen) hoe voeg ik een item toe aan een JList ?? En hoe verander ik dat afschuwelijke font ?? Ach, ik JDK1.1 was alles veel makkelijker
Read The Fucking API DocMisterJava: hoe voeg ik een item toe aan een JList
Het kan mooi en minder mooi: direct via de JList, of via het model eronder.
Read The Fucking API DocEn hoe verander ik dat afschuwelijke font ?? Ach, ik JDK1.1 was alles veel makkelijker
javax.swing.UIManager of vraag mij lief om het PandoramixMetalTheme
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Vooruit dan maar
.
Dit theme kan je instellen via MetalLookAndFeel.setCurrentTheme(...). Het gebruik een font die ik mooi vind en goede Unicode ondersteunig heeft (wat helaas bij het standaard font niet zo is
. Ik had super en subscripts nodig namelijk).
Uiteraard kan je het font zelf veranderen of bepaalde componenten uitzonderen.
Dit theme kan je instellen via MetalLookAndFeel.setCurrentTheme(...). Het gebruik een font die ik mooi vind en goede Unicode ondersteunig heeft (wat helaas bij het standaard font niet zo is
Uiteraard kan je het font zelf veranderen of bepaalde componenten uitzonderen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
| package org.pandoramix.gui;
import java.awt.Font;
import java.awt.Insets;
import javax.swing.plaf.FontUIResource;
import javax.swing.plaf.metal.DefaultMetalTheme;
import javax.swing.UIManager;
public class PandoramixMetalTheme extends DefaultMetalTheme
{
private FontUIResource _controlFont;
private FontUIResource _systemFont;
private FontUIResource _userFont;
private FontUIResource _smallFont;
public String getName()
{
return "Pandoramix Elegance";
}
public PandoramixMetalTheme()
{
super();
UIManager.put("TextField.margin", new Insets(2,2,2,2));
Font font = new Font("Lucida Sans Regular", Font.PLAIN, 12);
_controlFont = new FontUIResource(font);
_systemFont = new FontUIResource(font);
_userFont = new FontUIResource(font);
_smallFont = new FontUIResource(font);
}
public FontUIResource getControlTextFont()
{
return _controlFont;
}
public FontUIResource getSystemTextFont()
{
return _systemFont;
}
public FontUIResource getUserTextFont()
{
return _userFont;
}
public FontUIResource getMenuTextFont()
{
return getControlTextFont();
}
public FontUIResource getWindowTitleFont()
{
return getControlTextFont();
}
public FontUIResource getSubTextFont()
{
return _smallFont;
}
} |
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Idd, die gebruikt ook MetalThemes. Het is wel dezelfde LookAndFeel: MetalLookAndFeel.MisterJava: zit er bij de Java SDK niet al een voorbeeld met de naam MetalWorks en heeft dat niet ook iets met Skinnetjes en Themes te maken ??
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Nog een klein vraagje : Ik heb nu dmv UIManager ingesteld dat de crossplatform UI moet worden gebruikt :
Hoe verander ik dat in de metal look and feel ?? Ik kan het ook wel opzoeken maar dat duurt zo lang , omdat die docs best lang zijn
Maar goed, ik ben een luie programmeur
code:
1
| UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); |
Hoe verander ik dat in de metal look and feel ?? Ik kan het ook wel opzoeken maar dat duurt zo lang , omdat die docs best lang zijn
javax.swing.plaf.metal.MetalLookAndFeel (= cross platform look and feel trouwens).
Maar het zou wel prettig zijn als je nu eens zelf de API docs ging leren gebruiken. Lui zijn is stoer, maar ook suf.
Maar het zou wel prettig zijn als je nu eens zelf de API docs ging leren gebruiken. Lui zijn is stoer, maar ook suf.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Ja mensen, heb iknet eindelijk een programma gemaakt die die PandoramixMetalTheme gebruikt, en dan werkt het niet !! Zie mijn andere topic in de Programming forum: [java] fout in runtime ?
Het zit zo: de runtime geeft een fout direct alsik het programma start. Hij zegt dat er een fout zit in de nativa code buiten de VM (in c:\windows\system\dbghelper.dll) als ik de theme uitschakel werkt alles gewoon. Hoe zit dit nou ??
Het zit zo: de runtime geeft een fout direct alsik het programma start. Hij zegt dat er een fout zit in de nativa code buiten de VM (in c:\windows\system\dbghelper.dll) als ik de theme uitschakel werkt alles gewoon. Hoe zit dit nou ??
Op woensdag 24 oktober 2001 17:19 schreef -P@tRiCk- het volgende:
hier :
http://www.wasigh.com/javahova/forum/viewtopic.php?fid=1&tid=46
't is gewoon een reactie op je eigen topic
offtopic:
we zijn ondertussen over op een ander forum en de link is ook anders:
http://www.wasigh.com/javahova/forum/topic.php?id=46
we zijn ondertussen over op een ander forum en de link is ook anders:
http://www.wasigh.com/javahova/forum/topic.php?id=46
Pagina: 1