Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (483)
Games in Android Showcase (110)
games submitted by our members
Games in WIP (550)
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 1132 times)
0 Members and 1 Guest are viewing this topic.
Offline tortoise

Junior Member




<3 Shmups


« Posted 2003-10-15 03: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.

 

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

The first screenshot will be displayed as a thumbnail.

CopyableCougar4 (14 views)
2014-08-22 19:31:30

atombrot (28 views)
2014-08-19 09:29:53

Tekkerue (25 views)
2014-08-16 06:45:27

Tekkerue (23 views)
2014-08-16 06:22:17

Tekkerue (15 views)
2014-08-16 06:20:21

Tekkerue (22 views)
2014-08-16 06:12:11

Rayexar (61 views)
2014-08-11 02:49:23

BurntPizza (39 views)
2014-08-09 21:09:32

BurntPizza (31 views)
2014-08-08 02:01:56

Norakomi (37 views)
2014-08-06 19:49:38
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
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!