|
|
|
![]() |
|
Strumenti |
![]() |
#21 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
La chiamata JPopupMenu.setDefaultLightWeightPopupEnabled(false) devi farla prima di creare i menu.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#22 | |
Senior Member
Iscritto dal: Feb 2007
Città: Senigallia(AN)
Messaggi: 2069
|
Quote:
Ho provato ad infilarla dappertutto , nulla ![]()
__________________
|
|
![]() |
![]() |
![]() |
#23 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Bon, posta tutta l'ira di dio, appena posso ci do un occhio (non prometto niente, son tempi di ritmi pazzeschi al lavoro)
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#24 |
Senior Member
Iscritto dal: Feb 2007
Città: Senigallia(AN)
Messaggi: 2069
|
Ecco tutto l'ambaradan:
Codice:
//Importazione delle librerie import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.border.TitledBorder; import java.awt.BorderLayout; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.Image; import java.awt.MediaTracker; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.image.BandCombineOp; import java.awt.image.BufferedImage; import java.awt.image.Raster; import java.awt.image.WritableRaster; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.TitledBorder; //Dichiarazione della classe public class MainFrame extends JFrame { //Definizione degli attributi JMenuBar bar; JMenu file; JMenu isto; //item del menu file JMenuItem fileApri; JMenuItem fileEsci; //item del menu isto JMenuItem istoNormale; JMenuItem istoCumulativo; JButton rgb; JButton seppia; JButton negativo; JButton balloon; JButton sharpen; JButton scala; JButton right; //bottoni JButton buttonIsto; JButton buttonIsto2; //Definizione dei pannelli delle immagini PanelImage imgPanel; PanelImage imgPanel2; //Definizione dei pannelli degli istogrammi PanelHistogram histPanel; PanelHistogram histPanel2; //Definizione del costruttore public MainFrame() { JPopupMenu.setDefaultLightWeightPopupEnabled(false); //inizializzazione del frame this.setTitle("Filtro Immagini"); //this.setSize(900,700); //inizializzazione degli attributi this.bar = new JMenuBar(); this.file = new JMenu("File"); this.isto = new JMenu("Istogramma"); this.fileApri = new JMenuItem("Apri"); this.fileEsci = new JMenuItem("Esci"); this.istoNormale = new JMenuItem("Tradizionale"); this.istoCumulativo = new JMenuItem("Cumulativo"); //inizializziazione dei bottoni //associo i menu alla barra this.bar.add(this.file); this.bar.add(this.isto); //associo la barra al frame this.setJMenuBar(this.bar); //inizializzo il pannello per l'immagine e setto le dimensioni this.imgPanel = new PanelImage(); //this.imgPanel.setPreferredSize(new Dimension(320,320)); //inizializzo il pannello per l'istogramma dell'immagine e setto le dimensioni this.histPanel = new PanelHistogram(); //this.histPanel.setPreferredSize(new Dimension(320,320)); //inizializzo il pannello per l'immagine modificata e setto le dimensioni this.imgPanel2 = new PanelImage(); //this.imgPanel2.setPreferredSize(new Dimension(320,320)); //inizializzo il pannello per l'istogramma dell'immagine modificata e setto le dimensioni this.histPanel2 = new PanelHistogram(); //this.histPanel2.setPreferredSize(new Dimension(320,320)); //prelevo il pannello di contenuto //Container pane = this.getContentPane(); //setto il layout del pannello /*GridBagLayout layout = new GridBagLayout(); GridBagConstraints lim = new GridBagConstraints(); pane.setLayout(layout);*/ //this.setSize(900,750); this.imgPanel.setPreferredSize(new Dimension(320,320)); this.histPanel.setPreferredSize(new Dimension(320,320)); this.buttonIsto = new JButton("Istogramma Originale"); JPanel left = new JPanel(new BorderLayout(8,8)); left.add(imgPanel, BorderLayout.NORTH); left.add(buttonIsto, BorderLayout.CENTER); left.add(histPanel, BorderLayout.SOUTH); this.imgPanel2.setPreferredSize(new Dimension(320,320)); this.histPanel2.setPreferredSize(new Dimension(320,320)); this.buttonIsto2 = new JButton("Istogramma Modificata"); JPanel right = new JPanel(new BorderLayout(8,8)); right.add(imgPanel2, BorderLayout.NORTH); right.add(buttonIsto2, BorderLayout.CENTER); right.add(histPanel2, BorderLayout.SOUTH); JPanel center = new JPanel(new GridLayout(1, 2, 8, 8)); JPanel bottom = new JPanel(new FlowLayout(FlowLayout.CENTER)); this.rgb = new JButton("Filtro RGB"); bottom.add(rgb); this.scala = new JButton("Filtro Scala di Grigi"); bottom.add(scala); this.sharpen = new JButton("Filtro Sharpen"); bottom.add(sharpen); this.negativo = new JButton("Filtro Negativo"); bottom.add(negativo); this.seppia = new JButton("Filtro Seppia"); bottom.add(seppia); this.balloon = new JButton("Filtro Balloon"); bottom.add(balloon); this.right = new JButton("Filtro Right"); center.add(left); center.add(right); JPanel centerWrapper = new JPanel(new FlowLayout()); centerWrapper.add(center); this.add(centerWrapper, BorderLayout.CENTER); this.add(bottom, BorderLayout.SOUTH); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //this.pack(); this.setVisible(true); //creo un ascoltatore e lo associo agli oggetti FrameListener listener = new FrameListener(this); this.addWindowListener(listener); this.fileApri.addActionListener(listener); this.fileEsci.addActionListener(listener); this.istoNormale.addActionListener(listener); this.istoCumulativo.addActionListener(listener); this.buttonIsto.addActionListener(listener); this.buttonIsto2.addActionListener(listener); this.rgb.addActionListener(listener); this.scala.addActionListener(listener); this.sharpen.addActionListener(listener); this.negativo.addActionListener(listener); this.seppia.addActionListener(listener); this.balloon.addActionListener(listener); this.right.addActionListener(listener); //JPopupMenu.setDefaultLightWeightPopupEnabled(false); this.setExtendedState(JFrame.MAXIMIZED_BOTH); } //Definizione del metodo main public static void main(String args[]) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { MainFrame frame = new MainFrame(); //rendo visibile il mio frame //frame.setVisible(true); } }); } } ![]()
__________________
|
![]() |
![]() |
![]() |
#25 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Se il codice che hai postato è effettivamente quello che usi allora non c'è un errore vero e proprio ma una dimenticanza: i menu item [JMenuItem] 'fileApri', 'fileEsci', 'istoNormale' e 'istoCumulativo' non appaiono e non appariranno mai finchè non li aggiungi [add] a qualche menu [JMenu] che hai a sua volta aggiunto alla barra dei menu [JMenuBar].
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#26 | |
Senior Member
Iscritto dal: Feb 2007
Città: Senigallia(AN)
Messaggi: 2069
|
Quote:
![]() Grazie mille ancora , ora funziona tutto perfettamente ![]()
__________________
|
|
![]() |
![]() |
![]() |
#27 |
Senior Member
Iscritto dal: Feb 2007
Città: Senigallia(AN)
Messaggi: 2069
|
Salve a tutti di nuovo.
Vorrei aggiungere una Jlabel sopra i PanelImage , lavorando quindi sulle componenti LEFT e RIGHT. Qual'è il problema? Left e Right hanno le proprietà BorderLayout settabili a North , Center , Sud ecc... e se provo ad inserire una Jlabel con quella proprietà settata su North , me la disegno accanto al pulsante Istogramma. Questo credo perchè ho quattro oggetti da posizionare ma solo TRE proprietà in "altezza" (North , Sud , Center). Come potrei ovviare a questo? Questo è il risultato che vorrei ottenere (le label sono i rettangoli neri). ![]() Uploaded with ImageShack.us Grazie mille ![]()
__________________
|
![]() |
![]() |
![]() |
#28 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Beh, puoi procedere sull'esempio che ti ha fornito PGI: ridefinisci la griglia aggiungendo una nuova riga, e ripensa e definisci i setting delle constraints dei singoli componenti che piazzerai con GridBagLayout.
Prendi spunto dal codice che ti ha postato PGI, e modificalo. Se qualcosa di GridBagLayout non ti è chiaro o puoi consultare il tutorial scritto da PGI presente nel forum ![]()
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:15.