search

Home  >  Q&A  >  body text

java - GUI需要帮忙

请问我该怎样写才能让长方形变长并且将它移下,摆在中间 ?谢谢!

public class SelectSeat extends JPanel {
    
    int a;
    Object source;
    int counter= 0;
    
    static JFrame frame = new JFrame("Select Seat");
    
     public static void main(String[] args) {
            SwingUtilities.invokeLater(() -> {
                try {
                    createAndShowGui();
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            });
        }
     
     static void createAndShowGui() throws Exception {
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.getContentPane().add(new SelectSeat());
            frame.pack();
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }

    
    public SelectSeat() throws Exception
    {
        JPanel topPanel= new JPanel(new GridLayout(1, 15));
        RectDraw rect= new RectDraw();
        rect.setPreferredSize(new Dimension(30,25)); 
        topPanel.add(rect);
        
          JToggleButton[] ButtonList = new JToggleButton[30];
            
            JPanel ButtonPanel= new JPanel(new GridLayout(5,15,45,25)); // row,col,hgap,vgap
            for(int i = 0; i < 30; i++) {
                a=i+1;
                ButtonList[i]= new JToggleButton(""+a);
                ButtonPanel.add(ButtonList[i]); 
                
            }
                        
            JPanel bottomPanel = new JPanel(new GridLayout(1,5,40,20));
            JButton cancel= new JButton("Back");
            JButton confirm= new JButton("Next");
            bottomPanel.add(cancel);
            bottomPanel.add(confirm);
            
           setLayout(new BorderLayout(0, 45));
           add(topPanel, BorderLayout.PAGE_START);
           add(ButtonPanel, BorderLayout.CENTER);
           add(bottomPanel, BorderLayout.PAGE_END);
           ButtonPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
           bottomPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 20, 20)); //top,left,bottom,right
                  
             }

    private static class RectDraw extends JPanel
    {
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);  
             g.drawRect(29,550,300,250);  
             g.setColor(Color.GRAY);  
             g.fillRect(20,5,330,25); 
             g.setColor(Color.BLUE);
             g.drawString("Movie Sceen", 150, 20);   
            }
    }

}
 
阿神阿神2768 days ago305

reply all(2)I'll reply

  • PHP中文网

    PHP中文网2017-04-18 09:27:16

    Is this code you wrote yourself?
    It should be the gray rectangle. Just change the parameters of drawRect in the last function to control the gray rectangle and blue string respectively.

    reply
    0
  • PHP中文网

    PHP中文网2017-04-18 09:27:16

    If it is eciplise, you can use plug-ins to build the layout directly. (I have only used swing for a week)

    reply
    0
  • Cancelreply