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..
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);
}
} |