|
| Prob. med JComboBox på en JPopupMenu Fra : Morten Nørgaard |
Dato : 05-12-02 08:50 |
|
Hej,
håber nogen kan hjælpe mig med dette. Jeg smed en JComboBox ned på et
JPanel, som jeg placerede på en JPopupMenu. Når jeg aktiverer JComboBox'en,
forsvinder min JPopupMenu. Hvordan kan jeg få JPopupMenu'en til at forblive
vist?
På forhånd tak for hjælp!
Mvh. Morten
Den passende afkortede kode:
import javax.swing.*;
import java.awt.event.*;
class Test extends JFrame
{
class PopupListener extends MouseAdapter
{
public void mousePressed(MouseEvent e) { maybeShowPopup(e); }
public void mouseReleased(MouseEvent e) { maybeShowPopup(e);}
private void maybeShowPopup(MouseEvent e) {
if (e.isPopupTrigger()) {
popup.show(e.getComponent(),
e.getX(), e.getY());
}
}
}
JPopupMenu popup = new JPopupMenu();
JPanel panel = new JPanel();
JComboBox box = new JComboBox();
PopupListener popuplytter = new PopupListener();
public Test()
{
addMouseListener( popuplytter );
panel.add( box );
popup.add( panel );
}
public static void main( String args[] )
{
Test nytest = new Test();
nytest.show();
}
}
| |
Ole Ildsgaard Hougaa~ (05-12-2002)
| Kommentar Fra : Ole Ildsgaard Hougaa~ |
Dato : 05-12-02 17:53 |
|
On Thu, 5 Dec 2002 08:49:31 +0100, "Morten Nørgaard"
<morten.norgaard@uni-c.dk> wrote:
>Hej,
>
> håber nogen kan hjælpe mig med dette. Jeg smed en JComboBox ned på et
>JPanel, som jeg placerede på en JPopupMenu. Når jeg aktiverer JComboBox'en,
>forsvinder min JPopupMenu. Hvordan kan jeg få JPopupMenu'en til at forblive
>vist?
Jeg kan ikke direkte svare på dit spørgsmål, men jeg kan måske hjælpe
alligevel. Så vidt jeg kan se, er dit problem at den lille popup der
kommer op, når du aktiverer comboboxen (BasicComboPopup), i sig selv
er en JPopupMenu, og det forvirrer MenuSelectionManageren at du
pludselig vil have to JPopupMenu'er på skærmen på én gang.
Jeg ved ikke om det problem kan løses, men jeg kan foreslå et
work-around: Brug en undermenu med JRadioButtomMenuItems i stedet for
en combobox. For eksempel:
JMenu subMenu = new JMenu("Undermenu");
ButtonGroup buttonGroup = new ButtonGroup();
JRadioButtonMenuItem[] items = {
new JRadioButtonMenuItem("a"),
new JRadioButtonMenuItem("b"),
new JRadioButtonMenuItem("c"),
};
for (int i = 0; i < items.length; i++) {
subMenu.add(items[i]);
buttonGroup.add(items[i]);
}
popup.add(subMenu);
Håber det hjalp,
| |
Morten Nørgaard (06-12-2002)
| Kommentar Fra : Morten Nørgaard |
Dato : 06-12-02 10:07 |
|
Hej Ole,
det var måske et godt alternativ. Jeg prøver ad. Tak.
Morten
"Ole Ildsgaard Hougaard" <oih@get2net.dk> wrote in message
news:f10vuukkk2512komchlt8vqeudsefsto0s@4ax.com...
> On Thu, 5 Dec 2002 08:49:31 +0100, "Morten Nørgaard"
> <morten.norgaard@uni-c.dk> wrote:
>
> >Hej,
> >
> > håber nogen kan hjælpe mig med dette. Jeg smed en JComboBox ned på et
> >JPanel, som jeg placerede på en JPopupMenu. Når jeg aktiverer
JComboBox'en,
> >forsvinder min JPopupMenu. Hvordan kan jeg få JPopupMenu'en til at
forblive
> >vist?
>
> Jeg kan ikke direkte svare på dit spørgsmål, men jeg kan måske hjælpe
> alligevel. Så vidt jeg kan se, er dit problem at den lille popup der
> kommer op, når du aktiverer comboboxen (BasicComboPopup), i sig selv
> er en JPopupMenu, og det forvirrer MenuSelectionManageren at du
> pludselig vil have to JPopupMenu'er på skærmen på én gang.
>
> Jeg ved ikke om det problem kan løses, men jeg kan foreslå et
> work-around: Brug en undermenu med JRadioButtomMenuItems i stedet for
> en combobox. For eksempel:
>
> JMenu subMenu = new JMenu("Undermenu");
> ButtonGroup buttonGroup = new ButtonGroup();
> JRadioButtonMenuItem[] items = {
> new JRadioButtonMenuItem("a"),
> new JRadioButtonMenuItem("b"),
> new JRadioButtonMenuItem("c"),
> };
> for (int i = 0; i < items.length; i++) {
> subMenu.add(items[i]);
> buttonGroup.add(items[i]);
> }
> popup.add(subMenu);
>
> Håber det hjalp,
| |
|
|