Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    313

    Suddivisione di JPanel e posizionamenti di ogg. nel JFrame

    L'Idea è quella di dividere verticalmente JPanel in due parti uguali,in cui devono
    comparire delle immagini in seguito al click di apri,presente in un Jmenu associato ad un JMenubar
    ed ovviamente la barra dei menu
    Ora ho usato GridLayout per dividere il pannello delle immagini in due parti,ed ho usato un altro
    GridLayout per dividere il pannello principale e porre in modo ordinato sia il pannello che
    contiene la barra dei Menu che il pannello delle immagini,dato che il pannello delle immagini mi copriva
    la barra dei menu..
    Però ho il problema che quando divido il pannello principale con GridLayout,che lo divide
    in parti uguali,mi occupa troppo spazio per il pannello che contiene la barra dei menu'.
    Come fare per faer in modo che il pannello dei menu' mi occupa il suo reale spazio in modo da
    destinare più spazio per il pannello delle immagini oppure c'è un modo per evitere che
    il pannello delle immgini non mi copra la barra dei menù o meglio c'è qualche metodo per posizionare gli oggetti nella finestra ?????
    Inoltre come fare per posizionare l'immagine creata nei due pannelli??
    Grazie

    CODICE:



    package swingtest;
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
    import javax.media.jai.*;
    import java.awt.image.RenderedImage;
    import javax.media.jai.widget.ScrollingImagePanel;
    import com.sun.media.jai.codec.FileSeekableStream;
    /**
    *

    Title: </p>
    *

    Description: </p>
    *

    Copyright: Copyright (c) 2004</p>
    *

    Company: </p>
    * @author not attributable
    * @version 1.0
    */
    public class FinestraSwing extends JFrame{
    private JMenuBar barra = new JMenuBar();
    private JMenu file = new JMenu("File");
    private JMenu effect = new JMenu("Effect");
    private JMenuItem esci = new JMenuItem("Esci");
    private JMenuItem salva = new JMenuItem("Salva");
    private JMenuItem salvaas = new JMenuItem("Salva con nome");
    private JMenuItem apri = new JMenuItem("Apri");
    private JOptionPane pannello = new JOptionPane();
    private JFileChooser aprifile = new JFileChooser();

    Container contentPane = getContentPane();
    private JLabel srclabel;
    private JLabel dstlabel;
    private JPanel srcpanel;
    private JPanel dstpanel;
    private JPanel panelbar;
    private JPanel panel;
    private JPanel panelimg=new JPanel();
    private ScrollingImagePanel srcimg;
    private JPanel panelmain;
    private JPanel fine;


    /* Costruttore della classe*/
    public FinestraSwing() throws HeadlessException {
    super("Visualizzatore D'immagini");
    setSize(1030,750);
    barra.add(file);
    barra.add(effect);
    file.add(apri);
    file.add(salva);
    file.add(salvaas);
    file.add(esci);
    /*Pannello Barra*/
    panelbar = new JPanel();
    panelbar.add(barra, BorderLayout.NORTH);
    panelbar.setSize(800,100);

    /*Pannello diviso in due parti uguali*/
    panelimg = new JPanel();
    panelimg.setLayout(new GridLayout(1,2));
    panelimg.setDoubleBuffered(true);
    panelimg.setBackground(Color.white);
    panelimg.setBorder(BorderFactory.createLineBorder( Color.black));
    JScrollPane bottone1 = new JScrollPane();
    JScrollPane bottone2 = new JScrollPane();
    panelimg.add(bottone1);
    panelimg.add(bottone2);

    /*Pannello che contiene panelimg*/
    panelmain = new JPanel(new GridLayout(2,1));
    panelmain.add(panelbar);
    panelmain.add(panelimg);


    setContentPane(panelmain);


    esci.addActionListener(new AscoltaEsci());
    apri.addActionListener(new AscoltaApri());
    }

    public class AscoltaEsci implements ActionListener {
    public void actionPerformed(ActionEvent e) {
    System.exit(0);
    }
    }
    public class AscoltaApri implements ActionListener {
    public void actionPerformed(ActionEvent e) {
    aprifile.setDialogTitle("Scegli Immagine");
    aprifile.showOpenDialog (pannello);
    String fileName = new String(aprifile.getSelectedFile().toString());
    RenderedImage img=JAI.create("fileload",fileName);
    srcimg=new ScrollingImagePanel(img,ScrollPaneConstants.HORIZO NTAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.VERTICAL _SCROLLBAR_ALWAYS);
    srcimg.setCenter(10,10);
    srcimg.setBounds(100,300,400,400);
    srcimg.setSize(500,500);
    srcimg.setLocation(100,100);
    panelimg.add(srcimg);
    setContentPane(panelimg);
    }
    }

    public static void main(String[] args) throws HeadlessException {
    FinestraSwing finestraSwing1 = new FinestraSwing();
    finestraSwing1.setVisible(true);
    }
    }

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    prova cosi:

    panelmain = new JPanel(new BorderLayout);
    panelmain.add(panelbar, BorderLayout.NORTH);
    panelmain.add(panelimg, BorderLayout.CENTER);

    In effetti il panelbar è inutile: puoi aggiugnere direttametne la barra al panelmain; inoltre tieni presente che se devi usare gli JScrollPane, questi vanno costruiti passando direttamente nel costruttore il componente che devono contenere.

    La prossima volta che scrivi del codice indentalo racchiudendolo tra i tag [CODE*] e [/CODE*] senza asterisco.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    prova cosi:

    panelmain = new JPanel(new BorderLayout);
    panelmain.add(panelbar, BorderLayout.NORTH);
    panelmain.add(panelimg, BorderLayout.CENTER);

    In effetti il panelbar è inutile: puoi aggiugnere direttametne la barra al panelmain; inoltre tieni presente che se devi usare gli JScrollPane, questi vanno costruiti passando direttamente nel costruttore il componente che devono contenere.

    La prossima volta che scrivi del codice indentalo racchiudendolo tra i tag [CODE*] e [/CODE*] senza asterisco.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    313
    GRAZIE,funziona

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.