Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / GUI / August 2007

Tip: Looking for answers? Try searching our database.

menu accelerator

Thread view: 
Chameleon - 19 Aug 2007 19:31 GMT
I use netbeans.
In "Build" menu there is an action named "Stop Build/Run".
I assign to this JMenuItem the accelerator "Escape".
In "Build" menu there is an action named "Build Main Project".
I assign to this JMenuItem the accelerator "F7".

How I this possible in Java?
I try this in my programs MANY times but nothing.
Single keys doesn't work like accelerators.
They need a modifier key.

So, how the netbeans do this?

thanks

PS: I want to add an "F1" accelerator to menuitem:   help->help index
Andrew Thompson - 20 Aug 2007 14:17 GMT
>I use netbeans.

Do you use it, or does it use you?
It's just that it seems to have more control
at the moment, than you do.  

<snip boring crap about your IDE..>

>How I this possible in Java?

By learning how to code the Java programming
language.  There is a good reference here.
<http://java.sun.com/docs/books/tutorial/>

>I try this in my programs MANY times but nothing.

What 'programs'?  Paste an SSCCE here and we
might be able to see what you are doing wrong,
otherwise all I can suggest is "change the dot to
a comma in column 47 of line 53" - that *might*
solve the problem (and if it does, buy a lottery ticket
quickly - such luck cannot last).

>So, how the netbeans do this?

Probably the same way as 'native' Java code.

Did you even bother checking the Java code that
your IDE produces?  Or are you just expecting us
to spoon-feed the information to you?  Information
that could be obtained by consulting the relevant
section of the Java Tutorial, or sometimes even
the JavaDocs..  

..Wait a second, I have to run and get a fork to
mash up the potato - suitable for spoon-feeding.

Signature

Andrew Thompson
http://www.athompson.info/andrew/

Chameleon - 20 Aug 2007 23:31 GMT
>> I use netbeans.
>
[quoted text clipped - 29 lines]
> section of the Java Tutorial, or sometimes even
> the JavaDocs..  

I use netbeans because of real-time syntax checking and refactor things.
I do not use netbeans to generate code.

> .Wait a second, I have to run and get a fork to
> mash up the potato - suitable for spoon-feeding.

aggressive message!
maybe because my english sucks and you cannot understand what I am
trying to say.

btw, I am trying to say, how can I assign the "F1" accelerator to a
menuitem. The following code doesn't work:
---------------------
JMenuBar jmb = new JMenuBar();
JMenu jm = new JMenu("Help");
JMenuItem jmi = new JMenuItem("Help Index");
jmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0));
jmi.addActionListener(listener);
jm.add(jmi);
jmb.add(jm);
---------------------
I don't want "Shift+F1", "Ctrl+F1", etc. I want "F1".

Thanks
RedGrittyBrick - 21 Aug 2007 10:00 GMT
>> Paste an SSCCE here and we
>> might be able to see what you are doing wrong,
[quoted text clipped - 11 lines]
> ---------------------
> I don't want "Shift+F1", "Ctrl+F1", etc. I want "F1".

Thats not an SSCCE!

You have a bug in the code you are *not* showing us.

Here's a working SSCCE based on your snippet:
-----------------------------------------8<-----------------------------------
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;

public class TestAccellerator implements ActionListener {

    TestAccellerator() {

    // So I don't need to edit Chameleon's code at all
        ActionListener listener = this; // ick.

    // Chameleon's snippet *exactly* as in newsgroup
        JMenuBar jmb = new JMenuBar();
        JMenu jm = new JMenu("Help");
        JMenuItem jmi = new JMenuItem("Help Index");
        jmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0));
        jmi.addActionListener(listener);
        jm.add(jmi);
        jmb.add(jm);
    // end of Chameleon's snippet

        JPanel p = new JPanel();
        p.add(new JLabel("Panel"));

        JFrame f = new JFrame("Test Accellerator");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(p);
        f.setJMenuBar(jmb);
        f.pack();
        f.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        System.out.printf("Event: command '%s' from object '%s'\n", e
                .getActionCommand(), e.getSource());
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new TestAccellerator();
            }
        });
    }

}

-----------------------------------------8<-----------------------------------
When I press F1 I get the output I expected.
Chameleon - 21 Aug 2007 15:05 GMT
>>> Paste an SSCCE here and we
>>> might be able to see what you are doing wrong,
[quoted text clipped - 78 lines]
>
> When I press F1 I get the output I expected.

I dont know what is SSCCE but now I know.

Holy Sh*t!
F1 working!
I am dump and I spend your time for nothing!
I found a clause "if (key == 0 || modifier == 0) ..." in my code...
What a SHAME.
Sorry.


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.