|
|||||||
|
|
|
![]() |
|
|
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:10.





















