29. november 2001 - 08:12Der er
5 kommentarer og 1 løsning
Inaktiv skærmbillede
Hej, jeg har et problem. Jeg har to java filer, hvor det ene window bliver åbent når jeg trykker på en knap i det det andet. Ideen er så at det window der bliver lagt i baggrunden skal blive inaktiv, det vil sige, at man ikke skal have mulighed for at trykke på det første window før at man lukker det andet igen. Begge java-filer er implementeret som JInternalFrame. Håber der er en der kan hjælpe mig med at lave den inaktiv og aktiv igen!!!!
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
JInternalframes er svære at gøre modale men ved hjælp af glasspane kan det godt lade sig gøre
her er en løsning der kræver jdk 1.3
dette panel skal sættes som glasspane for din internal frame
// Subclass af JPanel public class JRGlassPane extends JPanel implements AWTEventListener { BorderLayout borderLayout1 = new BorderLayout(); InternalFrame parentFrame;
public JRGlassPane(InternalFrame parent) { super(); parentFrame = parent; // skal der være cursor, så fjern kommentar // this.setCursor(Cursor.getPredefinedCursor (Cursor.WAIT_CURSOR)); setOpaque(false); addMouseListener(new MouseAdapter() { }); addKeyListener(new KeyAdapter() { }); try { jbInit(); } catch(Exception ex) { ex.printStackTrace(); } }
// Override setVisible public void setVisible(boolean visible) {
if (visible) { if (this.parentFrame == null) Toolkit.getDefaultToolkit().addAWTEventListener (this, AWTEvent.KEY_EVENT_MASK); } else { Toolkit.getDefaultToolkit().removeAWTEventListener (this); } super.setVisible(visible); }
public void eventDispatched(AWTEvent event) { if (event instanceof KeyEvent && event.getSource() instanceof Component) { if (GUIUtilities.getInternalFrame((JComponent) event.getSource()) == this.parentFrame) // kun events for vores vindue ((KeyEvent)event).consume(); } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.