Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    37

    Java titolo di un jframe selezionato

    ciao a tutti!


    ho un problema con java..


    io ho due o più Jpanel aperti in frame differenti con titoli differenti sui quali posso disegnare.
    la mia domanda è: come faccio a sapere qual è il titolo del jframe sul quale sto disegnando?
    passando da un frame all'altro dopo aver cliccato con il mouse vorrei avere una stampa a video del titolo del frame sul quale ho disegnato il puntino(click del mouse)


    spero di essere stato chiaro =)


    grazie in anticipo!!

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    37
    certo!
    ma creando X finestre con un ciclo,il metodo getTitle() mi da il titolo dell'ultima finestra creata non di quella selezionata

  4. #4
    posta il codice così è più facile aiutarti!

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    37
    la mia lavagna viene creata cosi:

    codice:
    for (int i = 1; i <= (Integer) spinner.getValue(); i++) {
       Whiteboard w = new Whiteboard(Client.nome, i);
    la classe whiteboard :

    codice:
    public Whiteboard(String nome, int i) {
    
    
            MenuHandler mnHandler = new MenuHandler();
            setTitle("Whiteboard of " + nome + "_num_" + i);
            getContentPane().add(new PaintPanel());
            addWindowListener(exitListener);
            setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
            setSize(350, 250);
            
    
    
            JMenuBar menuBar = new JMenuBar();
            setJMenuBar(menuBar);
    
    
            JMenu mnModifica = new JMenu("Modifica");
            menuBar.add(mnModifica);
    
    
            JMenuItem mntmRedo = new JMenuItem("Redo");
            mnModifica.add(mntmRedo);
            mntmRedo.addActionListener(mnHandler);
    
    
            setVisible(true);
        }
    colori e disegni vengono gestiti dalla classe paintpanel:

    codice:
    import java.awt.*;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.awt.event.MouseMotionListener;
    import java.awt.image.BufferedImage;
    import javax.swing.*;
    
    
    class PaintPanel extends JPanel implements MouseMotionListener, MouseListener {
    
    
        private static Color COLOR_FOREGROUND = LoggedMain.colore_lavagna;
        private static final Color COLOR_BACKGROUND = Color.white;
        private static final int SIZE = 300;
        private int x = 10, y = 10;
        String percorso;
        private BufferedImage _bufImage = null;
    
    
        public PaintPanel() {
            setPreferredSize(new Dimension(SIZE, SIZE));
            setBackground(Color.WHITE);
            addMouseMotionListener(this);
            addMouseListener(this);
        
    
    
        }
    
    
        public void paintComponent(Graphics g) {
            super.paintComponents(g);
            Graphics2D g2 = (Graphics2D) g;
    
    
            if (_bufImage == null) {
                int w = this.getWidth();
                int h = this.getHeight();
                _bufImage = (BufferedImage) this.createImage(w, h);
                Graphics2D gc = _bufImage.createGraphics();
                gc.setColor(COLOR_BACKGROUND);
                gc.fillRect(0, 0, w, h);
    
    
            }
            g2.drawImage(_bufImage, null, 0, 0);
        }
    
    
        private void drawCurrentShape(Graphics2D g2) {
            g2.setColor(COLOR_FOREGROUND);
            g2.drawLine(x, y, x, y);
    
    
        }
    
    
        public void mouseDragged(MouseEvent e) {
    
    
            x = e.getX();
            y = e.getY();
            drawCurrentShape(_bufImage.createGraphics());
            percorso = percorso.concat(String.valueOf(x).concat(",")
                    .concat(String.valueOf(y)).concat(","));
            repaint();
    
    
        }
    
    
        public void mousePressed(MouseEvent e) {
            x = e.getX();
            y = e.getY();
            percorso = String.valueOf(x).concat(",").concat(String.valueOf(y))
                    .concat(",");
    
    
        }
    
    
        
        
        public void mouseReleased(MouseEvent e) {
        
            percorso = percorso.substring(0, percorso.length() - 1);
            
        }
    
    
    }
    io voglio che cliccando su una lavagna la classe paintpanel mi dica "la lavagna selezionata è X"
    Ultima modifica di LeleFT; 18-12-2013 a 18:40 Motivo: Aggiunta tag CODE

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da maxnanus Visualizza il messaggio
    certo!
    ma creando X finestre con un ciclo,il metodo getTitle() mi da il titolo dell'ultima finestra creata non di quella selezionata
    Banalmente anche solo il metodo

    public static Window windowForComponent(Component c)

    di SwingUtilities può esserti utile per trovare il JFrame.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    37
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Banalmente anche solo il metodo

    public static Window windowForComponent(Component c)

    di SwingUtilities può esserti utile per trovare il JFrame.
    ci avevo pensato..ma in che modo?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da maxnanus Visualizza il messaggio
    ci avevo pensato..ma in che modo?
    In che senso? Non è chiaro cosa fa windowForComponent?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    37
    Quote Originariamente inviata da andbin Visualizza il messaggio
    In che senso? Non è chiaro cosa fa windowForComponent?
    infatti.. =)

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da maxnanus Visualizza il messaggio
    infatti.. =)
    Passi un qualunque componente che, a qualunque livello di annidamento, è contenuto nella finestra e lui ti restituisce il reference a quella finestra.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.