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

    [JAVA] Costruire maschera

    Ciao a tutti ho un piccolo problema: non riesco a far funzionare 2 cose:


    1)lo scopo è: costruire una maschera per inserire dei dati, che poi vengono scritti in un file. La maschera non è fissa, alcune righe si possono ripetere, ed è l'utente che decide cosa e se aggiungere; per permettergli di aggiungere pezzi, ho messo tanti menù JPopup (quelli che si aprono cliccando col tasto destro). Ho una classe "riga" che estende JPanel e tante classi che descrivono i vari gruppi di righe; tutte le righe sono montate su un JPanel, che ho inserito in un JScrollPane. Il problema è questo: quando ne aggiungo un po', mettendole una di seguito all'altra (in colonna) ad un certo punto raggiungo e supero la dimensione iniziale del pannello su cui montarle (che ha il LayoutManager null; sarebbe comodo usare il flowLayout, ma poi se ridimensiono la finestra mi si scombina tutto...); dopodichè, quelle più in basso escono dal pannello e non le posso più vedere! Allora ho provaro a reimpostare le dimensioni del JPanel per ingrandirlo, sia con setPreferredSize che con setMinimumSize, ho invocato repaint sia sul JPanel che sul JScrollPane, ho provato a settare il ViewPort del JScrollPane, ma... niente! sto cavolo di pannello non ne vuol sapere di ingrandirlo! Come posso fare?
    2)le righe che aggiungo possono avere un campo di testo o un JComboBox; quando ne aggiungo una col JComboBox mi disegna male la casella combinata, perchè non ci mette più il bottoncino con la freccia che lo distingue dal campo di testo; posto che il metodo che crea la riga è sempre lo stesso, perchè nelle righe che crea all'inizio mi mette il bottoncino e in quelle che aggiunge no? ho provato anche ad aggiungere un repaint sulla casella di testo, ma non cambia nulla...

    Grazie a kiunque m risponderà.

    Ciao

  2. #2

  3. #3
    Troppo complicato... Posta il codice, se puoi.
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    quando aggiungi o togli elementi da un Container, usa il metodo

    codice:
    validate();
    su quel Container.

    Saluti.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Le caselle combinate hanno magicamente ripreso a funzionare da sole, senza che io cambiassi nulla... il pannello però non me lo vuole ingrandire! nemmeno coi vostri suggerimenti! In più: ho inserito dei JSplitPane in altre finestre dell'applicazione, ed ho provato ad usare setDividerLocation per posizionare la barra di divisione: non ha alcun effetto, la mette dove vuole lui! Come posso fare?
    Per quanto riguarda il codice da postare: per mostrarlo sul forum dovrei fare un "riassunto", perchè le classi sono uno sproposito! a grandi linee: ho una classe "riga" ed alcune classi che hanno come attributi un certo numero di righe. Poi ho la finestra in cui vengono inserite le righe (aggiunte con il metodo add ad un pannello che si chiama "form"). Quando l'utente aggiunge delle righe (su alcune righe si può aprire un JPopupMenu cliccando col tasto destro; nel menù ci sono i comandi per aggiungere le righe) viene chiamato il metodo "costruisciForm" che ottiene le righe chiamando il metodo "generaRighe" per ogni sezione della maschera; "costruisciForm" inserisce le righe così ottenute ordinatamente in un Vector, poi con un ciclo for le riposiziona su "form". Ho provato a mettere form.setPreferredSize prima del ciclo for, ma non ridimensiona form, neanche chiamando repaint, validate e quant'altro...

    Ciao e grazie a kiunque mi risponderà!!


  6. #6

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