How to center JPanel vertically

I`d like to align a JPanel to center. I`ve tried BorderLayout but I don`t want this JPanel to be forcefully extended - I want it to stay the way it is.
In this JPanel I have a few buttons that create a kind of menu and I want this menu to be in the center of the Frame. In the future I`ll probablt want to add some stuff at the bottom, top, left and right, so BorderLayout seems the perfect solution. The problem is that I don`t want the buttons to be resized to fill out the whole center area.
I`ve made a quick layout of what I mean here:
http://ilozen.republika.pl/stuff/layout.GIF

Here`s the full code in one file that shows the problem.
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class Problem {     
     public static void main(String[] args) {
       SwingUtilities.invokeLater(new Runnable() {
               private GameWindow gameWindow;               
            public void run() {
                gameWindow = new GameWindow();
class GameWindow extends JFrame{
     public GameWindow() {
          setExtendedState(MAXIMIZED_BOTH);                    
          getContentPane().add(new MainMenu(this));          
          setVisible(true);
class MainMenu extends JPanel{
     private JFrame parentFrame;
     private JPanel buttonsPanel;
     private JPanel buttons;
     private JButton newGameButton;
     private JButton loadGameButton;
     private JButton optionsButton;
     private JButton exitButton;
     private final int numberOfButtons = 4;
     public MainMenu(JFrame parent) {
          parentFrame = parent;
          buttons = new JPanel();
          newGameButton = new JButton("NEW GAME");          
          loadGameButton = new JButton("LOAD GAME");
          optionsButton = new JButton("OPTIONS");
          exitButton = new JButton("EXIT");          
          buttons.setLayout( new GridLayout(numberOfButtons,1));
          buttons.add(newGameButton);
          buttons.add(loadGameButton);
          buttons.add(optionsButton);
          buttons.add(exitButton);
          buttonsPanel = new JPanel(new FlowLayout());
          buttonsPanel.add(buttons);
          setLayout(new BorderLayout());
          add(buttonsPanel);          
}

Similar Messages

  • How to draw text vertically, or in an angle

    please help me how to draw text vertically, or in an angle

    I robbed the framework from Dr Las or 74phillip (don't remember which) ...
    import java.awt.*;
    import java.awt.geom.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class AngleText extends JPanel {
      private int      degrees = 16;
      private JSpinner degreesSpinner;
      public AngleText () {
        setBackground ( Color.WHITE );
      }  // AngleText constructor
      protected void paintComponent ( Graphics _g ) {
        super.paintComponent ( _g );
        Graphics2D g = (Graphics2D)_g;
        g.setRenderingHint ( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON );
        AffineTransform at = AffineTransform.getRotateInstance ( Math.toRadians ( degrees ) );
        Font f =  g.getFont();
        g.setFont ( f.deriveFont ( at ) );
        g.drawString ( "Rotating Text!", getWidth()/2, getHeight()/2 );
        g.setRenderingHint ( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF );
      }  // paintComponent
      public JPanel getUIPanel () {
        SpinnerModel degreesModel = new SpinnerNumberModel (
                                      degrees  // initial
                                     ,0        // min
                                     ,360      // max
                                     ,2        // step
        degreesSpinner = new JSpinner ( degreesModel );
        degreesSpinner.addChangeListener ( new DegreesTracker() );
        JPanel panel = new JPanel();
        panel.add ( degreesSpinner );
        return panel;
      }  // getUIPanel
      //  DegreesTracker
      private class DegreesTracker implements ChangeListener {
        public void stateChanged ( ChangeEvent e ) {
          Integer i = (Integer)((JSpinner)e.getSource()).getValue();
          degrees   = i.intValue ();
          repaint();
      }  // DegreesTracker
      //  main
      public static void main ( String[] args ) {
        JFrame f = new JFrame ( "AngleText" );
        f.setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE );
        AngleText app = new AngleText();
        f.getContentPane().add ( app );
        f.getContentPane().add ( app.getUIPanel(), BorderLayout.SOUTH );
        f.setSize ( 200, 200 );
        f.setVisible ( true );
      }  // main
    }  // AngleText

  • How to center text in shapes

    how to center text in shapes. specifically circles.  I want text to be centered directly in the middle

    A lot depends on what you mean by centered, the number of lines of text, the actual font, and whether there are descenders.
    Using vertical justification set to centered may or may not work for you, depending on the above factors, as it depends on the baseline, I believe, rather than the acutal glyph dimensions. You could try adding baseline shift, I suppose, to make fine vertical adjustments, or you can bite the bullet and use the old-fashioned method of two frames.

  • Center text vertically in 6i

    I was wondering if there was a way to center text vertically in a text field in forms 6i.
    I have a banner at the top of my form as a text item, and I need the value(s) to be centered horizontally(which I have already done) and vertically which I am wondering how to do. Could someone please tell me how?
    TIA
    C

    It does not. It's specific to table cells, or things with the
    table-cell
    display style.
    Murray --- ICQ 71997575
    Adobe Community Expert
    (If you *MUST* email me, don't LAUGH when you do so!)
    ==================
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    ==================
    "kiusau" <[email protected]> wrote in
    message
    news:gnesja$osr$[email protected]..
    >
    quote:
    I need to center the text vertically in the div at the bottom
    of this
    > page.
    > How do I accomplish this?
    >
    > Create a single cell table inside the <div> tag
    and apply vertical
    > alignment
    > to the <tr> tag. I do not know, if vertical
    alignment works with the <p>
    > tag.
    >
    > Roddy
    >

  • How to add JPanel in  JComboBox?

    Hi.
    How to add JPanel in JComboBox...?
    Regards
    Bilal

    I do not know much about Cardlayout.
    As far as I know, it is a layout which let you assign a serveral 'card' and exist together. By consider the order of the card, you could change the view of each page by using method- first, last, next etc. However, I would like to know what if I got a number of buttons, say A B C D E F, and having cards called a b c d e f,I know I could change from a to b, but what if I want to change from c to e by pressing the button E (assuming it showing the c card now).
    Actually, I was able to create the code now which adding one JPanel to another now. First create a JPanel with prefer size, min max size.
    then add a JPanel into the CENTER of the above JPanel, both using borderlayout.
    But having a little difficulties, could I add more JPanel into the CENTER such that one overlapping each other, by those Buttons, through action and event, hide those which I do not want to show?
    Like A B C buttons, a b c panels. When press A hide b c and show a, so on.
    Could I use method like movetofront(something like that, forgot detail which read in a book) to do this?
    Cheers

  • Center and Vertical Center Align an image

    how can I center and vertical align an image so that it stays center and vertically aligned in the middle and on all devices???
    Simply put I would like the image smack in the middle of every screen it is viewed on.

    Try this
    <!DOCTYPE html>
    <html>
    <head>
    <style>
    body {
        background-image: url('yourimage.gif');
        background-repeat: no-repeat;
        background-attachment: fixed;
        background-position: center;
    </style>
    </head>
    <body>
    </body>
    </html>

  • How to print text vertically in smart forms

    hi,
    Can any one tell how to print text vertically in smartforms
    ADVANCE THANKS
    GUHAPRIYAN

    HI,
    Chk out  this thread.Maybe it proves helpful.
    Re: vertical writing in smartforms
    Regards,
    Gayathri

  • TS3999 In MONTH, (PC) iCal only clearly lists 2 items a day. The 3rd item is "faded" and bottom portion cut off, w/ a "more" triangle in the lower-right corner. How can I expand (vertically) so the 3rd line posts clearly, and ONLY shows "more" if 4+ event

    In MONTH, (PC) iCal only clearly lists 2 items a day. The 3rd item is "faded" and bottom portion cut off, w/ a "more" triangle in the lower-right corner. How can I expand (vertically) so the 3rd line posts clearly, and ONLY shows "more" if 4+ events?
    Better yet... as there's a lot of "wasted" space w/ too large Month title and empty space surrounding the Month title above and too much space surrounding the month/year slider bar below, how can I minimize these to allow me more usable / valuable calendar "contents" so I don't need to waste so much time clicking "more" just to see the bottom of the truncated third event and find out there are no 4+ events posted that date?  i.e. more "user-friendly" presentation?
    Thx!
    [email protected]

    In MONTH, (PC) iCal only clearly lists 2 items a day. The 3rd item is "faded" and bottom portion cut off, w/ a "more" triangle in the lower-right corner. How can I expand (vertically) so the 3rd line posts clearly, and ONLY shows "more" if 4+ events?
    Better yet... as there's a lot of "wasted" space w/ too large Month title and empty space surrounding the Month title above and too much space surrounding the month/year slider bar below, how can I minimize these to allow me more usable / valuable calendar "contents" so I don't need to waste so much time clicking "more" just to see the bottom of the truncated third event and find out there are no 4+ events posted that date?  i.e. more "user-friendly" presentation?
    Thx!
    [email protected]

  • How to show data vertical in ALV

    How to show data vertical in ALV?
    such as :
    [http://img402.imageshack.us/img402/9978/20101230215621.png|http://img402.imageshack.us/img402/9978/20101230215621.png]
    Moderator Message: Search for available information. Keywords - Dynamic Internal Table
    Edited by: kishan P on Dec 30, 2010 7:35 PM

    Transpose the contents of your internal table.
    Original:
    A 1 1 1
    B 2 2 2
    Transposed:
    A B
    1 2
    1 2
    1 2

  • How to display TEXT vertically in SMART FORM

    Hai,
    I need to display the column name of a table vertically (readable from bottom to top) in smart form.
    Could any one please tell me how to do this?
    Thanks & Best Regards,
    Maniyam Bhaskar.

    Hi,
    Go through these threads for the discussions happened on similar issue... hope it helps you..
    how to print text vertically in smart forms
    vertical and horizontal printing in same page with smartforms or sapscript
    Good luck
    Narin

  • How to center the text displayed in a JList

    Hi,
    The width of the JList display area is wider than the text displayed. I tried to center the text displayed to make it look nicer. I had tried using "setAlignmentX(Component.CENTER_ALIGNMENT)" in my own ListCellRenderer class but did not work. Any idea how to center the text?
    Fai.

    Yes, I am using JLabels in my renderer and the following is the code:
    public class MyCellRenderer extends JLabel implements ListCellRenderer {
         private static final Color HIGHLIGHT_COLOR = new Color(0, 0, 128);
         public MyCellRenderer() {
              setOpaque(true);
              setIconTextGap(12);
         public Component getListCellRendererComponent(
              JList list,
              Object value,
              int index,
              boolean isSelected,
              boolean cellHasFocus)
              String entry = (String)value;
              setText(entry);
              setFont(new Font("Ariel", Font.BOLD, 18));
              setAlignmentX(Component.CENTER_ALIGNMENT);
              if(isSelected) {
                   setBackground(HIGHLIGHT_COLOR);
                   setForeground(Color.white);
              } else {
                   setBackground(Color.white);
                   setForeground(Color.black);
              return this;
    Can you point out where to implement the centering logic?
    Thanks,
    Fai.

  • How do I delete Vertical color stripes (pink-red-green) on desktop screen - 6 of them. Anybody have the same problem? Other Mac groups have same problem.

    How do I delete vertical color stripes on my destop screen. There are 6 of them in pink, red and green. Can't believe I'm having problems with my wonderful iMac!

    Unfortunately, they aren't something to be "deleted." Might be a hardware/graphics chip problem. You should run the Hardware Test in Extended. Might have to run it several times to pick up an error.
    http://support.apple.com/kb/ht1509

  • How to center a JFrame object on the screen?

    Does somebody know how to center a JFrame object on the screen. Please write an example because I'm new with java.
    Thank you.

    //this will set the size of the frame
    frame.setSize(frameWidth,frameHeigth);
    //get screen size
    Toolkit kit=Toolkit.getDefaultToolkit();
    //calculate location for frame
    int x=(kit.getScreenSize().width/2)-(frameWidth/2);
    int y=(kit.getScreenSize().height/2)-(frameHeigth/2);
    //set location of frame at center of screen
    frame.setLocation(x,y);

  • How is a JQuery Vertical Accordian Different Than A Hide-Show Region

    Hello Everyone.
    I an using Apex 4.0.1. I recently learned how to create a JQuery vertical accordian. I'm using the sample accordian that Patrick Wolf recently created/posted. It uses a really nice "accordian template" that he put together. It's really quite useful when it comes to saving space and all on a page.
    Then I began wondering: How is this accordian different than Apex's own builtin Hide-Show Region template?
    And so, I created a sample page on my workspace in apex.oracle.com. I placed a JQuery vertical accordian that consists of 3 regions: 2 reports and a chart. I added a little bit of JQuery to Patrick's template that causes all 3 accordian slices to be closed as opposed to the default behavior of having one slice always open. I also added code that allows a user to re-size the entire accordian either vertically and/or horizontally.
    I then created 3 additional regions that mimic the first 3 regions above. These I placed in "column 2" on the page. For each region I assigned the "Hide-Show" template.
    As far as I can tell, both the accordian and the Hide-Show regions provide the same functionality.
    For the interested, here is a link to my page:
    http://apex.oracle.com/pls/apex/f?p=49919
    The app has open authentication assigned, and so, no login credentials are needed. Please click the "Accordian" tab.
    I realize that the accordian has more flexibilty in that one may add features like choosing to collapse/not collapse all slices and re-sizing, etc. I suppose one could do similarly for the Hide-Show regions using Javascript or JQuery but it would likely be an effort.
    Admittedly, such added features are cool and all. Still, it's been my experience that in the majority of business-like production environments, such "cool" features are pretty much useless. For example, I do not see how re-sizing the accordian or Hide-Show regions has much purpose. In fact, such "cool" features often get in the way of the main goal of the application.
    Of course, a JQuery accordian may also be created that expands/contracts slices "horizontally". I do not know of any way to do the same thing using Hide-Show regions. If someone does know how to do this, I (and likely others) would sure appreciate you sharing how.
    So, then, with respect to basic functionality (saving page real estate by encapsulating several regions), how is a JQuery vertical accordian any different than Apex's own builtin "Hide-Show" region?
    Thank you all for your thoughts/adice/code.
    Elie

    Hello Jari.
    Thank you for your help.
    Yes. Now I do understand what it is you are doing in your accordian page. And also I want to thsnk you for providing the sample code on your page showing how to go about preserving the current state of the accordian when you navigate from/to the page.
    You commented that this kind of state preservation is not available with the Hide/Show region. I'm thinking that you are correct, though I think I once saw something about doing this posted in this Forum. I'll search through and see if I can locate it.
    In any case, have you (or anyone else reading this thread) any other differences between a JQuery vertical accordian and Apex's own Hide/Show region? Other than being able to apply Javascript to an accordian to do things like preserve it's state (like you did), what else may one do with an accordian that is not doable (or at least not easily doable) with a Hide/Show region?
    Thank you for any further advice.
    Elie

  • How to center in a Scene?

    I'm liking the layouts, but I haven't figured out how to center something in a Scene. It doesn't take LayoutInfo, for example.
    What's a good way to center a Component (a VBox in this case) in a Scene?
    Thanks,
    Dave

    You can do it the good old way:
    def IMAGES_WIDTH = 100;
    def IMAGES_HEIGHT = 100;
    var COLUMN_NB = 3;
    var ROW_NB = 3;
    var scene: Scene;
    var previews: Container;
    Stage
      title: "Test of Tile layout"
      scene: scene = Scene
        width: 500
        height: 500
        fill: Color.LAVENDER
        content:
          previews = Tile
            hgap: 10
            vgap: 10
            layoutX: bind (scene.width - previews.width) / 2
            layoutY: bind (scene.height - previews.height) / 2
            columns: COLUMN_NB
            content: for (i in [ 1 .. COLUMN_NB * ROW_NB ])
              ImageView
                image: Image
                  url: "{__DIR__}clock.gif"
                  width: IMAGES_WIDTH
                  preserveRatio: true
    }

Maybe you are looking for