recherche

Maison  >  Questions et réponses  >  le corps du texte

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 Il y a quelques jours304

répondre à tous(2)je répondrai

  • PHP中文网

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

    Est-ce que ce code est que vous avez écrit vous-même ?
    Ce devrait être le rectangle gris. Modifiez simplement les paramètres de drawRect dans la dernière fonction pour contrôler respectivement le rectangle gris et la chaîne bleue.

    répondre
    0
  • PHP中文网

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

    S'il s'agit d'Eciplise, vous pouvez utiliser des plug-ins pour créer directement la mise en page. (Je n'utilise le swing que depuis une semaine)

    répondre
    0
  • Annulerrépondre