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

    BUG Grafico con Win e Linux ma non con MAC

    Ho un problema. Ho creato un frame con un JPanel a cui assegno un borderlayout e poi gli addo un JPanel a North e un Jlabel a south; così da avere sopra l'interfaccia grafica e sotto la statusbar. Ora nasce un problema. Nel momento in cui ho adottato questo sistema per avere sotto la statusbar il JPanel di sopra sembra impazzito ovvero nel momento in cui passo da sopra con un'altra finestra oppure aggiorno il JPanel con altre immagini, mostra il contenuto con cui era stato creato. poi cliccando sopra torna tutto come prima.
    Ho riscontrato questo problema si con il Win XP che con il Linux. Il problema non nasce su MAC.

    E' un problema di S.O. quindi oppure è un problema risolvibile? :master: :master: :master:

    a tutti

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Dovresti postare il codice per capire dov'è il problema... così, ad intuito, direi che stai mescolando componenti SWING con componenti AWT.
    Il comportamento mi induce a pensare questo.


    Se è così, devi modificare il programma in modo che tutti i componenti siano SWING.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    in effetti sto usando componenti swing e il borderLayout che è awt. Come risolvo?

    Posto la creazione del prima JPanel:

    private JPanel getMainPanel() {
    if (MainPanel == null) {
    try {
    StatusBarLabel = new JLabel();
    StatusBarLabel.setText("Avvia un nuovo gioco!"); // Generated
    MainPanel = new JPanel();
    MainPanel.setLayout(new BorderLayout()); // Generated
    MainPanel.add(StatusBarLabel, BorderLayout.SOUTH); // Generated
    } catch (java.lang.Throwable e) {
    // TODO: Something
    }
    }
    return MainPanel;
    }

    dopo ci associo un altro panel in questa maniera :

    ContentPanePrincipale = new JPanel();
    LayoutGriglia = new GridLayout(game.getH(), game.getL());
    ContentPanePrincipale.setLayout(LayoutGriglia);
    makeMatrice(tema);
    MainPanel.add(ContentPanePrincipale, BorderLayout.CENTER);
    ContentPanePrincipale.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
    int x = evt.getX() / 38;
    int y = (game.getH() - evt.getY() / 38) - 1;
    try {
    game.move(x, y);
    StatusBarLabel.setText("Punteggio attuale: " + game.getPlayerScore());
    } catch (RuntimeException e) {
    StatusBarLabel.setText(e.toString().split(": ")[1]);
    }

    Spero tu possa aiutarmi..

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Il problema non è quello. I LayoutManager sono indipendenti dal sistema utilizzato (anche se il package di riferimento è AWT).


    Stai usando un Frame o un JFrame?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    un JFrame .. perchè?

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Perchè era il container più esterno che non hai postato...

    Prova a postare un po' più di codice... a questo punto deve essere un problema di codice e non di incompatibilità AWT/Swing.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Volevo postare tutto il codice ma è troppo lungo!
    Quindi o lo posto a rate oppure te lo passo in privato ... dimmi tu cosa preferisci ..
    grazie dell'aiuto..


    Ah comunque volevo dirti che il problema all'inizio non si presentava è sorto solo quando ho inserito la statusbar (JLabel ) in basso con il borderLayout.

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.