Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    JScrollPane+JScrollBar... non funge!

    codice:
    static JScrollPane princ;
        static JPanel uno = new JPanel();
        static JTextField[] x1=new JTextField[1000];
        static JTextField[] y1=new JTextField[1000];
        double[] x = new double[1000];
        double[] y = new double[1000];
        static char[] c = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'Z'};
        public Main(){
            super("Finestrella");
            setSize(500,500);
            setExtendedState(MAXIMIZED_BOTH);
            uno = new JPanel();
            JScrollBar j = new JScrollBar(JScrollBar.VERTICAL);
            j.setUnitIncrement(10);
            j.setMinimum(0);
            j.setMaximum(20030);
            j.setEnabled(true);
            princ =new JScrollPane(uno);
            princ.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
            princ.setVerticalScrollBar(j);
            princ.setAutoscrolls(true);
            uno.setLayout(null);
            int k=30;
            for(int i=0;i<1000;i++){
                x1[i]=new JTextField();
                x1[i].setBackground(Color.white);
                x1[i].setBorder(BorderFactory.createLineBorder(Color.black,1));
                x1[i].setBounds(30,k,100,20);
                y1[i]=new JTextField();
                y1[i].setBackground(Color.white);
                y1[i].setBorder(BorderFactory.createLineBorder(Color.black,1));
                y1[i].setBounds(129,k,100,20);
                k+=19;
                uno.add(x1[i]);
                uno.add(y1[i]);
            }
            getContentPane().add(princ);
            setVisible(true);
            setDefaultCloseOperation(3);
        }
        
    
        public static void main(String[] args) {
            
            
            new Main();
            
        }
       
        }
    Questo codice mi fa avere un JFrame con una tabella stile foglio di calcolo elettronico con 2 colonne e 1000 righe.
    Il mio problema è: non ho mai usato in vita mia i JScrollPane nè le JScrollBar, perciò quando lancio l'applicazione e mi fa vedere la finestra con la jscrollbar verticale senza il quadratino in mezzo(quello che serve a scorrere il contenuto del jpanel) non capisco perchè... qualcuno sa aiutarmi?

    questo 'è uno screenshot della finestra che appare:


    anche cliccando sulle due freccette ai margini della jscrollbar il pannello non viene scorso
    L'ascensore può scendere su e giù...
    by Prof di Sistemi

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: JScrollPane+JScrollBar... non funge!

    Originariamente inviato da Harlandraka_94
    [CODE]Questo codice mi fa avere un JFrame con una tabella stile foglio di calcolo elettronico con 2 colonne e 1000 righe.
    Il mio problema è: non ho mai usato in vita mia i JScrollPane nè le JScrollBar, perciò quando lancio l'applicazione e mi fa vedere la finestra con la jscrollbar verticale senza il quadratino in mezzo(quello che serve a scorrere il contenuto del jpanel) non capisco perchè... qualcuno sa aiutarmi?
    No, non è così che si fanno e dispongono le cose.
    Innanzitutto mettere i campi static non ti serve e non è nemmeno una buona cosa.

    Poi comunque assegnare un JScrollBar espressamente al JScrollPane non serve nemmeno. In ogni caso anche se il JPanel è nel JScrollPane e quest'ultimo è a sua volta nella parte CENTER del BorderLayout del content pane (cose che sono tutte corrette), comunque non scrolla lo stesso. Perché JScrollPane si basa sul "preferred size" del componente (il JPanel nel tuo caso) per sapere se/di quanto è scrollabile. Ma quale è il preferred size del JPanel? Di certo un valore basso, probabilmente 0,0 perché non c'è un layout manager (l'hai tolto!) e hai usato il "posizionamento assoluto".

    E infine, visto che hai ben 1000 textfield .... forse sarebbe stato meglio avere una tabella (JTable).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: JScrollPane+JScrollBar... non funge!

    Originariamente inviato da Harlandraka_94
    Questo codice mi fa avere un JFrame con una tabella stile foglio di calcolo elettronico con 2 colonne e 1000 righe.
    Il mio problema è: non ho mai usato in vita mia i JScrollPane nè le JScrollBar, perciò quando lancio l'applicazione e mi fa vedere la finestra con la jscrollbar verticale senza il quadratino in mezzo(quello che serve a scorrere il contenuto del jpanel) non capisco perchè... qualcuno sa aiutarmi?

    questo 'è uno screenshot della finestra che appare:


    anche cliccando sulle due freccette ai margini della jscrollbar il pannello non viene scorso
    Prova il mio esempio:
    codice:
    /**
     * @(#)Prova.java
     *
     *
     * @author Vincenzo
     * @version 1.00 2010/12/6
     */
    
    import javax.swing.*;
    import java.awt.*;
    
    public class Prova extends JFrame{
    	
    	private JPanel main;
    	
    	public Prova(){
    		super("Prova");
    		
    		main = new JPanel();
    		main.setLayout(new GridLayout(0, 2));
    		
    		int i = 0;
    		while(i++ < 1000){
    			main.add( new JTextField() );
    		}
    		
    		JScrollPane sp = new JScrollPane( main );
    		add( sp );
    		
    		setSize( new Dimension(300, 300) );
    		setDefaultCloseOperation( EXIT_ON_CLOSE );
    		setVisible(true);
    	}
        
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            new Prova();
        }
    }
    Spero sia quello che ti serve. Chiaro che avere 1000 JTextField non è proprio corretto!
    La parte che ti deve interessare è quella relativa allo ScrollPane!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.