Easy to Learn Java: Programming Articles, Examples and Tips

Start with Java in a few days with Java Lessons or Lectures

Home

Code Examples

Java Tools

More Java Tools!

Java Forum

All Java Tips

Books

Submit News
Search the site here...
Search...
 
Search the JavaFAQ.nu
1000 Java Tips ebook

1000 Java Tips - Click here for the high resolution copy!1000 Java Tips - Click here for the high resolution copy!

Java Screensaver, take it here

Free "1000 Java Tips" eBook is here! It is huge collection of big and small Java programming articles and tips. Please take your copy here.

Take your copy of free "Java Technology Screensaver"!.

Easy Learn Java: Programming Articles, Examples and Tips - Page 337


Previous 1060 Stories (530 Pages, 2 Per Page) Next

Java: JMenu

Go to all tips in Swing, AWT

A menu bar can be added to the top of any top-level containers ( JFrame, JApplet, JDialog, and less commonly JInternalFrame, JRootPane). Note that it can not be added to JPanel.

Think of a menu as a way to arrange buttons.

Types of menus

  • Dropdown menus hang down from the menu bar at the top of a window.
  • Popup menus appear when the user clicks, eg with the right mouse button, on a component that can handle a popup request.
  • Combo boxes are like menus that always shows one item. Similary, there are lists and radio buttons.

JMenuBar, JMenu, and JMenuItem

Dropdown menus have three parts:

  1. JMenuBar is positioned across the top of a container (eg a JFrame, JPanel, or JApplet). It's placed above the content pane, so does not use the container's layout. Add menus to the menubar.
  2. JMenu is a vertical list of menu items.
  3. JMenuItem and Separators are added to each menu. Menu items are usually strings, but can also have icons, checkboxes, or hierarchical submenus.

Menus and Menu Items are Buttons!

It is easy to see how menu items are buttons that appear when a menu appears. But the menu names in the menu bar are also buttons. When you press on these "buttons", they create a popup menu that you see as a dropdown menu.

Example

See MenuDemo.java.



3 comments | Printer Friendly Page  Send to a Friend | Score: 0
Posted by jalex on Friday, April 08, 2005 (00:00:00) (6046 reads)

Java: JTextField

Go to all tips in Swing, AWT

Java: JTextField

Description

javax.swing.JTextField has two uses.

  • Input. The user can enter one line of text (a String)
  • Output. To display one line of text.

If you need a component that displays or allows entry of more than one line, use a JTextArea.

To use a JTextField for Input

  1. Declare a JTextField as an instance variable. Reason: If it's an instance variable, it can be seen in all methods in the class.
  2. Assign an initial value to this variable by calling the JTextField constructor. Specify the approximate field width in the constructor. Example:
    JTextField yourInpuFieldt = new JTextField(16);
  3. Add the text field to a container.
    content.add(yourInputField);
    or to add it to a JPanel p
    p.add(yourInputField);
  4. Input is done by calling the getText().
    1. Get the string in the text field by calling yourTextField.getText() method whenever you need it. This is probably the most common way.
      String x = yourInputField.getText();
    2. Attach an action listener to the text field. It is called whenever the user types Enter in that field. The listener can then get the text and process it.

To use a JTextField for Output

Using a JTextField for output is almost the same as for input, but . . .

  1. Set the text field with yourTextField.setText(someString)
  2. If it's only for output, call .setEditable(false) so the user can't change the field.

Here is the sequence.

------ continues (click link below)


  1. Declare and initialize a JTextField as a field variable (instance variable). Example:
    JTextField myOutput = new JTextField(16);
    You can also set the initial value in the field
    JTextField myOutput = new JTextField("someInitialValue", 20);
  2. Add the text field to a container. For example, to add it to JPanel p.
    p.add(myOutput);
  3. Setting the value of the text field. Whenever you want put a string value in the text field, call myOutput.setText("Some text").
    myOutput.setText("some text");

Constructors

JTextField tf = new JTextField(int columns);
The number of columns is approximate because the width of text depends on the font and width of individual characters.
JTextField tf = new JTextField(String initial);
This puts the initial String in the JTextField. The size of the JTextField is set from this String.
JTextField tf = new JTextField(String initial, int columns);
This creates a JTextField columns wide with value initial.

Common methods

Here are some of the most common methods use with text fields: Assume these declarations

    JTextField tf;
    ActionListener listener;
    String s, text;
    Font f;
    
    //--- When used for input.
    s = tf.getText(); // gets the text from the JTextField
    tf.addActionListener(listener); // Optional listener intialization.
    
    //--- When used for output.
    tf.setText(text); // Sets text in the JTextField.
    tf.setEditable(false);   // Initialization to disallow user changes.
    
    //--- To change the appearance.
    tf.setHorizontalAlignment(align); // See below for possible values.
    tf.setFont(f);      // sets the font for the text

Appearance of a JTextField - font, alignment

  • yourField.setFont(Font f); sets the font for the text. Often numbers are aligned to the right (eg, in the display of a calculator), and text is aligned to the left.
  • yourField.setHorizontalAlignment(align); sets the alignment of the text in the field, where align is one of these values: JTextField.LEFT (the default), JTextField.CENTER, or JTextField.RIGHT.

Example

JTextField userID;   // declare a field
. . .
userID = new JTextField(Cool; // create field approx 8 columns wide.
p.add(userID);              // add it to a JPanel

userID.addActionListener(
    new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            ... // THIS CODE IS EXECUTED WHEN RETURN IS TYPED
        }
    }
);

Interface Guideline

In addition to getting the ActionEvent when the user types an Enter in the JTextField, you should also have a button which the user can use to cause the same action because many users will not know that Enter in a JTextField will cause an event.

Use JPasswordField for passwords

Use a JPasswordField component for a field where the characters the person enters are replaced by some other character. JPasswordField is a subclass of JTextField.

Use JFormattedTextField to restrict input format

The JPasswordField subclass of JTextField can be used to restrict the input to particular values. See How to Use Formatted Text Fields.

Additional methods

Because JTextField is a child class of JTextComponent, you can use the methods in the TextComponent class, for example, to find and set the caret position or selected text.

Additional events

Normally you would use an ActionListener to be notified when the user types the Enter key. If you need to, you can use a listener for the Document that is being displayed. These listeners can notify you about each character, selection, cursor movement, or change.

Focus

To select a JTextField so that user typing occurs in that field, you must give the JTextField focus. For example, the nameField JTextField can be given focus with:

nameField.requestFocus();

5242 bytes more | 6 comments | Printer Friendly Page  Send to a Friend | Score: 4
Posted by jalex on Thursday, April 07, 2005 (00:00:00) (16134 reads)

Previous 1060 Stories (530 Pages, 2 Per Page) Next

530| 529| 528| 527| 526| 525| 524| 523| 522| 521| 520| 519| 518| 517| 516| 515| 514| 513| 512| 511| 510| 509| 508| 507| 506| 505| 504| 503| 502| 501| 500| 499| 498| 497| 496| 495| 494| 493| 492| 491| 490| 489| 488| 487| 486| 485| 484| 483| 482| 481| 480| 479| 478| 477| 476| 475| 474| 473| 472| 471| 470| 469| 468| 467| 466| 465| 464| 463| 462| 461| 460| 459| 458| 457| 456| 455| 454| 453| 452| 451| 450| 449| 448| 447| 446| 445| 444| 443| 442| 441| 440| 439| 438| 437| 436| 435| 434| 433| 432| 431| 430| 429| 428| 427| 426| 425| 424| 423| 422| 421| 420| 419| 418| 417| 416| 415| 414| 413| 412| 411| 410| 409| 408| 407| 406| 405| 404| 403| 402| 401| 400| 399| 398| 397| 396| 395| 394| 393| 392| 391| 390| 389| 388| 387| 386| 385| 384| 383| 382| 381| 380| 379| 378| 377| 376| 375| 374| 373| 372| 371| 370| 369| 368| 367| 366| 365| 364| 363| 362| 361| 360| 359| 358| 357| 356| 355| 354| 353| 352| 351| 350| 349| 348| 347| 346| 345| 344| 343| 342| 341| 340| 339| 338|
337
| 336| 335| 334| 333| 332| 331| 330| 329| 328| 327| 326| 325| 324| 323| 322| 321| 320| 319| 318| 317| 316| 315| 314| 313| 312| 311| 310| 309| 308| 307| 306| 305| 304| 303| 302| 301| 300| 299| 298| 297| 296| 295| 294| 293| 292| 291| 290| 289| 288| 287| 286| 285| 284| 283| 282| 281| 280| 279| 278| 277| 276| 275| 274| 273| 272| 271| 270| 269| 268| 267| 266| 265| 264| 263| 262| 261| 260| 259| 258| 257| 256| 255| 254| 253| 252| 251| 250| 249| 248| 247| 246| 245| 244| 243| 242| 241| 240| 239| 238| 237| 236| 235| 234| 233| 232| 231| 230| 229| 228| 227| 226| 225| 224| 223| 222| 221| 220| 219| 218| 217| 216| 215| 214| 213| 212| 211| 210| 209| 208| 207| 206| 205| 204| 203| 202| 201| 200| 199| 198| 197| 196| 195| 194| 193| 192| 191| 190| 189| 188| 187| 186| 185| 184| 183| 182| 181| 180| 179| 178| 177| 176| 175| 174| 173| 172| 171| 170| 169| 168| 167| 166| 165| 164| 163| 162| 161| 160| 159| 158| 157| 156| 155| 154| 153| 152| 151| 150| 149| 148| 147| 146| 145| 144| 143| 142| 141| 140| 139| 138| 137| 136| 135| 134| 133| 132| 131| 130| 129| 128| 127| 126| 125| 124| 123| 122| 121| 120| 119| 118| 117| 116| 115| 114| 113| 112| 111| 110| 109| 108| 107| 106| 105| 104| 103| 102| 101| 100| 99| 98| 97| 96| 95| 94| 93| 92| 91| 90| 89| 88| 87| 86| 85| 84| 83| 82| 81| 80| 79| 78| 77| 76| 75| 74| 73| 72| 71| 70| 69| 68| 67| 66| 65| 64| 63| 62| 61| 60| 59| 58| 57| 56| 55| 54| 53| 52| 51| 50| 49| 48| 47| 46| 45| 44| 43| 42| 41| 40| 39| 38| 37| 36| 35| 34| 33| 32| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1|


Home Code Examples Java Forum All Java Tips Books Submit News, Code... Search... Offshore Software Tech Doodling

RSS feed Java FAQ RSS feed Java FAQ News     

    RSS feed Java Forums RSS feed Java Forums

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest 1999-2006 by Java FAQs Daily Tips.

Interactive software released under GNU GPL, Code Credits, Privacy Policy