Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (406)
games submitted by our members
Games in WIP (293)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Swing help: focusing JInternalFrames  (Read 960 times)
0 Members and 1 Guest are viewing this topic.
Offline tortoise

Junior Member




<3 Shmups


« Posted 2003-10-15 05:29:14 »

I am creating a paint program and it's just about done except there is one thing that is kind of annoying. The program consists of a JFrame with a JDesktopPane set and all editable images reside in JInternalFrames. When I want to say paint into an image, I have to click it twice: once to select the JIF, and again to start painting. This is both counterintuitive and slows you down. Typically you'd just immediately start painting on the first click.

The root of the problem is the initial click on a JIF does not generate a MouseEvent, at least not in any way that I can muster, it doesn't even appear to generate a FocusEvent, and InternalFrameEvent's not any help. I'm starting to think this isn't possible. I may be able to shift the mouse listening up to the JFrame and have it manually handle mouse events for its children, but I'd prefer to avoid that.

I've been able to accomplish sloppy focus, which isn't all too bad and with only one image open it's exactly what I want. With more than one it's a bit unexpected unless you're one of those weird Unix folks that likes sloppy focus Smiley That's just done with a call to setSelected() in mouseEntered().

This is a decent skeleton of my code. An ImageBuffer gets a mouse event, asks for the current active tool and passes the event to the tool, who then manipulates the image based on the mouse event and its current state.

Any ideas appreciated.

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  
class ImageBuffer extends JInternalFrame implements MouseListener {
      ...
      // normally does nothing, for sloppy focus does setSelected() as below
     public void mouseEntered(MouseEvent me) {
            try {
                  setSelected(true);
            } catch(Exception e) {}
      }
     
      public void mousePressed(MouseEvent me){
            Tool t = ToolBox.getCurrentTool();  // such as paint brush
           
            t.imagePressed(me, this);
      }
     
      public void mouseDragged(MouseEvent me){
            Tool t = ToolBox.getCurrentTool();
           
            t.imageDragged(me, this);
      }      
      ...
}

class PaintBrush extends Tool {
      public void imagePressed(MouseEvent me, ImageBuffer buff) {
            buff.setPixel(...);
      }
     
      public void imageDragged(MouseEvent me, ImageBuffer buff) {
            buff.setLine(...);
      }
}



           
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Get high quality music tracks for your game!

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (80 views)
2013-05-17 21:29:12

alaslipknot (89 views)
2013-05-16 21:24:48

gouessej (122 views)
2013-05-16 00:53:38

gouessej (114 views)
2013-05-16 00:17:58

theagentd (126 views)
2013-05-15 15:01:13

theagentd (113 views)
2013-05-15 15:00:54

StreetDoggy (158 views)
2013-05-14 15:56:26

kutucuk (180 views)
2013-05-12 17:10:36

kutucuk (180 views)
2013-05-12 15:36:09

UnluckyDevil (186 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!
Page created in 0.113 seconds with 20 queries.