Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Bottoni dentro un jScrollPane

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2017
    Messaggi
    19

    Bottoni dentro un jScrollPane

    Ciao stò cercando di inserire dinamicamente dei bottoni dentro un jScrollPane.
    Il GridBagLayout mi sembra "disegnato" bene, se inserisco un solo Jpanel, ottengo il risultato sperato01.png
    ma se i Jpanel sono multipli, vengono messi in modo confuso ed orizzontalmente, ecco il mio codice:
    codice:
      JPanel pane = new JPanel(new GridBagLayout());
    String sqlSingola = "..";
     try (Connection conn = DbConn.SQLite();
                    Statement stmt = conn.createStatement();
                    ResultSet rs = stmt.executeQuery(sqlSingola)) {
     while (rs.next()) {
     JButton button;
                    pane.setLayout(new GridBagLayout());
                    GridBagConstraints c = new GridBagConstraints();
                    c.fill = GridBagConstraints.HORIZONTAL;
                    c.anchor = GridBagConstraints.PAGE_START;
    
    
                    button = new JButton("Button 1");
                    c.weightx = 0.5;
                    c.gridx = 0;
                    c.gridy = 0;
                    pane.add(button, c);
    
    
                    button = new JButton("Button 2");
                    c.gridx = 0;
                    c.gridy = 1;
                    pane.add(button, c);
    
    
                    button = new JButton("Button 3");
                    c.gridx = 1;
                    c.gridy = 1;
                    pane.add(button, c);
    
    
                    jScrollPane2.setViewportView(pane);
      rs.close();
                conn.close();
            } catch (SQLException e) {
                System.out.println(e.getMessage());
            }

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Non mi è molto chiaro il problema, nel codice non si vede la creazione di più pannelli e come eventualmente li aggiungi a un container.

    Riesci a postare un piccolo codice di esempio (magari direttamente compilabile ed eseguibile, con dei dati "dummy" inseriti da codice, se necessario) in cui i pannelli sono "confusi" e non ottieni il risultato sperato?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2017
    Messaggi
    19
    cerco di essere più preciso, questo è il codice completo:
    codice:
    public class Main extends javax.swing.JFrame {
         public Main() {
                initComponents();
               //PANNELLO ESISTENTE
                gridPanel = new JPanel(new GridLayout(0, 1));
                JPanel borderLayoutPanel = new JPanel(new BorderLayout());
                borderLayoutPanel.add(gridPanel, BorderLayout.PAGE_START);
                JScrollPane scrollPane = new JScrollPane(borderLayoutPanel);
                scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
                add(scrollPane);
    
                 Avvio();
    
        }
         private void Avvio() {
                JPanel pane = new JPanel(new GridBagLayout());
                pane.setBorder(BorderFactory.createLineBorder(Color.BLUE));
    
    
                for (int i = 0; i < 10; i++) {
                    JButton button;
                    pane.setLayout(new GridBagLayout());
                    GridBagConstraints c = new GridBagConstraints();
                    c.fill = GridBagConstraints.HORIZONTAL;
                    c.anchor = GridBagConstraints.PAGE_START;
    
    
                    button = new JButton("Button 1");
                    c.weightx = 0.5;
                    c.gridx = 0;
                    c.gridy = 0;
                    pane.add(button, c);
    
    
                    button = new JButton("Button 2");
                    c.gridx = 0;
                    c.gridy = 1;
                    pane.add(button, c);
    
    
                    button = new JButton("Button 3");
                    c.gridx = 1;
                    c.gridy = 1;
                    pane.add(button, c);
                }
    
    
            }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2018 vBulletin Solutions, Inc. All rights reserved.