[java] SmallButtons.

Pagina: 1
Acties:

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik gebruik al een tijdje voor in mijn applicaties een button die pas een border krijgt al je er met je muis overgaat. Hij heeft het altijd gedaan (t/m jdk1.3.1) maar sinds ik jdk1.4 beta gebruik moet ik eerst een keer met mijn muis over alle buttons heen om ze de juiste size te geven. Op zich niet erg :) maar begin er nu wel een beetje flauw van te worden. Ik heb er al een paar keer naar gekeken maar ik kan er niet wijs uit worden. Weet iemand een oplossing of heeft zelf een smallbutton liggen?

ok.. thanx..
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package com.jph.interfacebeans.buttons;

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

/** This JButton only has a border when the user point's his/hers mouse over it.
 */
public class SmallButton extends JButton implements MouseListener
{
    protected Border m_raised;
    protected Border m_lowered;
    protected Border m_inactive;

    /** Creates an SmallButton.
    */
    public SmallButton()
    {
        super();
        
        m_raised = new BevelBorder(BevelBorder.RAISED);
        m_lowered = new BevelBorder(BevelBorder.LOWERED);
        m_inactive = new EmptyBorder(2, 2, 2, 2);
        setMargin(new Insets(1,1,1,1));
        addMouseListener(this);
        setRequestFocusEnabled(false);
        setLabel(null);
        setBorder(m_inactive);
    }

    /** Creates an SmallButton with the Action and the ToolTip set.
    * @param act The action containing the the event handling and the Icon.
    * @param tip The ToolTip.
    */
    public SmallButton(Action act, String tip)
    {
        this(act);
        setToolTipText(tip);
    }

    public SmallButton(Action act)
    {
        this((Icon)act.getValue(Action.SMALL_ICON));
        setAction(act);
        if(act.getValue(Action.SMALL_ICON)==null)
            setLabel((String)act.getValue(Action.NAME));
        else
            setLabel(null);
    }

    public SmallButton(Icon icon)
    {
        this();
        setIcon(icon);
    }

    public float getAlignmentY()
    {
        return 0.5f;
    }

    public void mousePressed(MouseEvent e)
    {
        setBorder(m_lowered);
    }

    public void mouseReleased(MouseEvent e)
    {
        setBorder(m_inactive);
    }

    public void mouseClicked(MouseEvent e)
    {
    }

    public void mouseEntered(MouseEvent e)
    {
        setBorder(m_raised);
    }

        public void mouseExited(MouseEvent e)
    {
        setBorder(m_inactive);
    }
}

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hum, ik zie zo absoluut niets wat verkeerd is, maar ik weet wel hoe Jext het doet:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  public JextButton()
  {
    super();

    setBorderPainted(false);
    addMouseListener(new MouseHandler());
  }

  class MouseHandler extends MouseAdapter
  {
    public void mouseEntered(MouseEvent me)
    {
    if (isEnabled())
      setBorderPainted(true);
    }

    public void mouseExited(MouseEvent me)
    {
    if (isEnabled())
      setBorderPainted(false);
    }
  }

Dat werkt dus wel onder 1.4. Overigens is het wel interessant om dit ff uit te zoeken... rare verandering :?

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Op zaterdag 04 augustus 2001 20:52 schreef mbravenboer het volgende:
Hum, ik zie zo absoluut niets wat verkeerd is, maar ik weet wel hoe Jext het doet:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  public JextButton()
  {
    super();

    setBorderPainted(false);
    addMouseListener(new MouseHandler());
  }

  class MouseHandler extends MouseAdapter
  {
    public void mouseEntered(MouseEvent me)
    {
    if (isEnabled())
      setBorderPainted(true);
    }

    public void mouseExited(MouseEvent me)
    {
    if (isEnabled())
      setBorderPainted(false);
    }
  }

Dat werkt dus wel onder 1.4. Overigens is het wel interessant om dit ff uit te zoeken... rare verandering :?
Hehe.. hij doet het! :)
thanx..
Dit was alweer een oud stukje code en heeft het altijd goed gedaan, maar het kan inderdaad ook een stuk simpeler..

  • Tomatrix
  • Registratie: Juni 1999
  • Laatst online: 27-02-2025
Ik heb wel meer rare dingen gezien in Swing onder 1.4 beta;

Forte geeft errors bij het opstarten en loopt vaak vast bij het selecteren van een menuitem. Bij TogetherJ zie je niets anders dan een mooi grijs scherm :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: Hehe.. hij doet het! :)
Altijd makkelijk open-source code ;)

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Tomatrix: Ik heb wel meer rare dingen gezien in Swing onder 1.4 beta;
Hum dat is merkwaardig, het draait hier behoorlijk goed. Ik gebruik echter niet Forte of TogetherJ. Mijn eigen apps en Jext veroorzaken geen problemen...

Maar als je kan vinden waaraan het ligt, kan je heel gemakkelijk even melden. Daar zijn beta's tenslotte voor :) . Alleen zo kunnen ze hem beter maken. Ik heb ook al een aantal bugs ingestuurd.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Op zaterdag 04 augustus 2001 20:59 schreef Tomatrix het volgende:
Ik heb wel meer rare dingen gezien in Swing onder 1.4 beta;

Forte geeft errors bij het opstarten en loopt vaak vast bij het selecteren van een menuitem. Bij TogetherJ zie je niets anders dan een mooi grijs scherm :)
ik krijg zo nu en dan echt gekke vastlopers.
Voor het testen kun je jdk1.4 wel gebruiken maar voor normaal draaien moet je wel jdk1.3.1 gebruiken.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: Voor het testen kun je jdk1.4 wel gebruiken maar voor normaal draaien moet je wel jdk1.3.1 gebruiken.
Waarschijnlijk komt er eind Augustus/begin September een beta refresh. Het schijnt dat deze pas echte performance winst op zal leveren. Hopelijk draait die voor jullie dan ook beter...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
En ik werk alleen met codeguide en jbuilder (tot voorheen die hard kawa man) en jbuilder draait op zijn eigen jdk1.3(.1?), bij codeguide zou ik het niet weten. Volgens mij hebben zij een hele lading grafische compontenten via jni interface aangesproken. Het programma draaid supersnel maar tis toch wel een java proggie..

Ken je het trouwens?

Maar om niet al te veel af te dwalen. Ik krijg zo nu en dan wel vastlopers met jdk1.4. Ook al open je alleen een frame dan knalt ie er na een uur of half uur zomaar uit met een hele reeks met interne foutmeldingen.

[edit]stoned typen lukt niet al te best :7

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Op zaterdag 04 augustus 2001 21:06 schreef mbravenboer het volgende:

[..]
Hopelijk draait die voor jullie dan ook beter...
Voor ons? je bent toch niet zo`n gekke apple gebruiker he? (was vroeger ook amiga man hoor :) )

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: je bent toch niet zo`n gekke apple gebruiker he?
Hehe :) nee hoor, bedoelde omdat het hier wel aardig lijkt te draaien. Ik zou trouwens best een Mac OS X bakje willen hebben :9~ . Voor Mac OS X is er trouwens ook nog geen beta 1.4.0

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: Het programma draaid supersnel maar tis toch wel een java proggie..
Tsss :) kan Java er wat aan doen dat mensen Swing niet snappen...
Ken je het trouwens?
Alleen van horen zeggen.
Maar om niet al te veel af te dwalen. Ik krijg zo nu en dan wel vastlopers met jdk1.4.
Hum wazig, best vreemd dat het hier soepel lijkt te lopen.... Ik gebruik echter ook alleen maar Jext en mijn eigen proggies dus misschien dat die net goed ervanaf komen...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Tsss :) kan Java er wat aan doen dat mensen Swing niet snappen...
Wees eerlijk. Swing draait pas lekker op 300 Mhz of meer (liefst veel meer) en een visual c proggie is al lang blij op 50 Mhz( of misschien nog wel minder). Java heeft gewoon veel overhead. Ik krijg mijn programma`s meestal ook wel een stuk sneller. Bv alle dialogen van te voren toch op te bouwen (opstarten duurt iets langer, maar je hebt geen irritante pauzes meer onder het draaien) en ik recycle ook veel schermen, dit scheelt ook veel tijd. En natuurlijk goed coden en niet overal repaints en invalidates aanroepen.
Alleen van horen zeggen.
Codeguide is een erg fijn programma. Lekker simpel en niet al te veel flauwekul wat je nooit gebruikt. De java doc is meteen beschikbaar in de helpfunties en als je intypes System.out. en je wacht even dan krijg je een lijst met alle methodes constanten en variablen. En even staan op een classe of methode naam en je krijg volledige uitleg.
Hum wazig, best vreemd dat het hier soepel lijkt te lopen.... Ik gebruik echter ook alleen maar Jext en mijn eigen proggies dus misschien dat die net goed ervanaf komen...
Ik draai onder win2k en ik heb er zowel op mijn werk als thuis last van. (Intel en AMD).

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: Wees eerlijk.
Ok, het is wel zo. Java implementeert in feite een hele laag over het OS heen. Het is logisch dat het dan minder snel loopt.

Feit is wel dat de meeste problemen worden veroorzaakt door mensen die niet weten waarmee ze bezig zijn.
Swing draait pas lekker op 300 Mhz of meer (liefst veel meer)
Swing heeft vooral geheugen nodig. Ik heb een PII - 300 met 194 mb geheugen. Ik draai mijn eigen Swing programma's echt met veel plezier. Het werkt soepel en zonder irritatie.
Codeguide is een erg fijn programma.
Klinkt goed, betalen zeker?

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Op zaterdag 04 augustus 2001 21:50 schreef mbravenboer het volgende:

[..]

Ok, het is wel zo. Java implementeert in feite een hele laag over het OS heen. Het is logisch dat het dan minder snel loopt.

Feit is wel dat de meeste problemen worden veroorzaakt door mensen die niet weten waarmee ze bezig zijn.
[..]

Swing heeft vooral geheugen nodig. Ik heb een PII - 300 met 194 mb geheugen. Ik draai mijn eigen Swing programma's echt met veel plezier. Het werkt soepel en zonder irritatie.
[..]

Klinkt goed, betalen zeker?
Voor alle goeie dingen moet je betalen. Op dit moment gebruik ik hem nog met crack (jaja. ik weet het) maar we gaan hem straks wel kopen voor mijn werk. Of kawa zijn codecompletion en helpfunties moeten het nu eens een keer beter doen. En je kunt ook een aantal views over je file structuur/object structuur krijgen. Tis een erg fijn en slim programma. (niet te slim, dat werkt je ook alleen maar op de zenuwen) :)

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op zaterdag 04 augustus 2001 21:25 schreef mbravenboer het volgende:

Hum wazig, best vreemd dat het hier soepel lijkt te lopen.... [..]
mmm mijn schuld is het niet hoor :P

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: Voor alle goeie dingen moet je betalen.
Mijn bibliotheken zijn gratis hoor ;) Binnekort getypeerde properties :) een echte must have voor elke serieuze Java ontwikkelaar ;) :Z

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
wasigh: mmm mijn schuld is het niet hoor :P
Hehe :) Leuk je weer ff op GoT te zien :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Op zaterdag 04 augustus 2001 22:21 schreef mbravenboer het volgende:

[..]

Mijn bibliotheken zijn gratis hoor ;) Binnekort getypeerde properties :) een echte must have voor elke serieuze Java ontwikkelaar ;) :Z
Misschien kunnen we met zijn allen eens een java lib maken? Denk dat we daar allemaal veel aan hebben. Heb ook nog wel een paar leuke componentjes.. Een erg goeie nieuwe boomstructuur (kan je zelf tables en bomen in bomen plaatsen :) ,maar ook comboboxen en textfields en en labels uiteraard) en heb nog een hele lading andere fijne objectjes.

vb combobox treenode. Heb ik gebruikt voor een programma dat ik voor een timmerfabriek heb geschreven.
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
package com.jph.trappenCalc.view.treeNodes.properties;

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

import com.jph.interfacebeans.tree.*;
import com.jph.trappenCalc.model.*;
import com.jph.trappenCalc.model.typen.*;
import com.jph.trappenCalc.model.properties.*;

public class VerfbehandelingTypePropertyTreeNode extends ComboBoxTreeNode implements ActionListener
{
    private JComboBox                        comboBox;
    private VerfbehandelingTypeProperty verfbehandelingTypeProperty;

    public VerfbehandelingTypePropertyTreeNode(VerfbehandelingTypeProperty verfbehandelingTypeProperty)
    {
        super(false,TypeManager.verfbehandelingTypeTable.verfbehandelingTypeArray,verfbehandelingTypeProperty.getVerfbehandelingType(),null,"verfbehandeling type");            
        comboBox = getMultiIconComboBox().getComboBox();
        comboBox.addActionListener(this);
        this.verfbehandelingTypeProperty = verfbehandelingTypeProperty;
    }
    
    public void actionPerformed(ActionEvent ae)
    {
        verfbehandelingTypeProperty.setVerfbehandelingType((VerfbehandelingType)comboBox.getSelectedItem());
    }
}

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Misschien wel een leuk idee inderdaad om te kijken of er iets gemerged kan worden :)

Jouw componenten klinken in ieder geval ook erg goed en wel aardig in mijn stijl.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op zaterdag 04 augustus 2001 22:22 schreef mbravenboer het volgende:

[..]

Hehe :) Leuk je weer ff op GoT te zien :) .
Yep, in het weekend heb ik wel internet (want zit thuis)
eindelijk wat meer java vragen :9~ (en * wasigh leert ook weer wat bij)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Op zaterdag 04 augustus 2001 22:45 schreef mbravenboer het volgende:
Misschien wel een leuk idee inderdaad om te kijken of er iets gemerged kan worden :)

Jouw componenten klinken in ieder geval ook erg goed en wel aardig in mijn stijl.
Ik heb net een homepage op geocities gemaakt en ik kan er straks wel een paar plaatjes op plaatsen. Heb oa een eigen boomstructuur ontworpen waar je ook heel eenvoudig popup menu ed mee kan regelen. Je kunt ook meer ipv 1 icoon per tree node gebruiken en ook een hele lading componentjes. De hoofd gedachte daaruit is dat je je meer de boomnode kan voelen :) en zo veel eenvoudiger kan programmeren. Veel listeners die zijn al aangesloten en je hoeft alleen een paar methodes te overriden, en voila. :Y) (ventje met een hooivork)

Ik zit er ook nog aan te denken om een deel van mijn lib op www.jars.com te zetten en er wel een paar centjes voor te vragen als ze voor commercieele doeleinden gebruikt worden. Ik hou namelijk ook wel van een paar centjes :)

Kan ik mijn dual palomino kopen :7

Verwijderd

volgens mij gaan plaatjes en geocities niet samen.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op zaterdag 04 augustus 2001 22:47 schreef mbravenboer het volgende:
Hier:
http://www.javalobby.org/discussionContext/showThreaded/frm/javalobby?folderId=20&discussionContextId=10818

had trouwens iemand commentaar op Java bytecode ;) .
Neeraj: "C++ is way better-faster and more powerful."

Yes it is, but you couldn't pay me enough to ever work with that ugly shit again. You are welcome to it.
lol :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Als ik tevreden ben over een aantal interessante componenten (en ik tijd heb om documentatie en site te maken) wil ik ze gaan plaatsen op mijn site, www.pandoramix.org . Ik heb daar een virtuele server met MySQL en PHP, die ik op dit moment nogal zeer matig gebruik...

Misschien is het een idee (als jij dat wat vindt) om van www.pandoramix.org meer een community te maken waaraan iedereen kan bijdragen. Jouw componenten kunnen er dan ook bij en worden dan onder de Pandoramix vlag verspreid. Uiteraard krijg je daarvoor dan wel alle credits.

Ik wilde mijn code uitbrengen onder GPL onder de duidelijke vermelding dat commerciele instellingen die geen GPL kunnen of willen gebruiken contact op kunnen nemen voor een andere licentie methode. Ik overwoog eerst LGPL, maar vind die toch iets aan de te lichte kant denk ik.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik ben vannacht aardig aan het schoppen, maar heb nog een nieuwtje die betrekking heeft op dit probleem :) .

In 1.4.0 Release Candidate zal er een methode zijn in JToolBar: setRollOver(boolean). :9~ . Het was mij niet helemaal duidelijk of dit ook default aan zal staan in de MS Windows of Java Look and Feel.
In Merlin, JToolBar now supports rollover toolbar buttons. That is, when this property is true, then the toolbar will draw borders only when the mouse hovers over it. Many modern user interfaces use this paradigm and it will make user interfaces built with Swing look more contemporary.
Bron:
http://java.sun.com/j2se/1.4/jcp/j2se-1_4-rc-mr_docs-spec/index.html
sectie Swing

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1