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

    [Java] grosso panel con scrollbar

    Ciao a tutti,
    qual'è secondo voi il modo più efficace di creare un editor per mappe composte da caselle disposte in una griglia ?
    In sostanza devo creare un editor che permetta all'utente di muoversi in una superfice rettangolare di cui vede un ingrandimento, grossa a piacere, muovendosi con le scrollbar (e magari con la rotellina) e cliccando sulle caselle possa richiamare un codice che vada a cambiare il tipo di terreno di quella casella.

    Per intenderci, qualcosa di simile a RPGMaker.

    Pensavo di usare un JPanel e farne l'override del metodo paintComponent in modo che disegnasse le immagini delle caselle, corredando il tutto di scrollbar che avrebbero causato un aggiornamento del panel facendo disegnare le nuove caselle, ma ho scoperto che le scrollbar da sole sono sconsigliabili.

    Esiste un componente che semplifichi tutto ciò?
    Chi sa fare, fa. Chi non sa fare, insegna. Chi non sa nemmeno insegnare, insegna educazione fisica - Woody Allen

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Non sono un esperto di swing, comunque penso ti convenga dare uno sguardo anche ai gestori di Layout.

    A esempio questo, che permette di creare una griglia N righe ed N colonne
    http://java.sun.com/j2se/1.4.2/docs/...ridLayout.html

    Forse in questo modo riesci poi a gestire meglio quello che vai ad inserire in ogni area.

    Potrei aver detto una cavolata e quindi non averti dato nessun aiuto; tuttavia voglio le attenuanti (ore passate al pc, ed orario xD)

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

    Re: [Java] grosso panel con scrollbar

    Originariamente inviato da sumail
    Pensavo di usare un JPanel e farne l'override del metodo paintComponent in modo che disegnasse le immagini delle caselle, corredando il tutto di scrollbar che avrebbero causato un aggiornamento del panel facendo disegnare le nuove caselle, ma ho scoperto che le scrollbar da sole sono sconsigliabili.
    Puoi benissimo estendere JPanel e fare l'override di paintComponent() per disegnare caselle, immagini (o quant'altro ti pare).

    Se tutto questo pannello è molto grande e vuoi che si veda solo una parte con la possibilità di scrolling, allora questo tuo pannello lo dovrai mettere, come "view", dentro un JScrollPane ( new JScrollPane(tuoPannello) ) ed è il JScrollPane che dovrai poi mettere a sua volta in un altro "contenitore" (es. altro pannello, scheda di un JTabbedPane, content pane di un JFrame, ecc....) e la dimensione del JScrollPane dipenderà appunto da dove lo metti e in base al layout manager.

    Solo una nota importante. Il tuo pannello deve fornire un "preferred size" (vedi get/setPreferredSize() ) per indicare quanto è grande.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    @Patrick Jane: si può fare, ma io ho bisogno di decorare ulteriormente le celle e di implementare uno zoom, quindi di cambiarne il numero, e questo richiederebbe comunque l'uso delle grafica diretta.

    @andbin: grazie mille, è ESATTAMENTE quello che cercavo.

    Per utenti futuri, è questo componente
    Chi sa fare, fa. Chi non sa fare, insegna. Chi non sa nemmeno insegnare, insegna educazione fisica - Woody Allen

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.