Salve ragazzi
Ho un problema: la menubar del mio jframe scompare sotto il Panel , quando aperta.
Vi lascio il codice:
In altro loco mi hanno suggerito che , probabilmente , stavo mescolando componenti "lightweigth" tipici di Swing (il JPopupMenu che compare quando clicco su un menu) con componenti "heavywheight" tipici di AWT.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; PanelImage imgPanel; PanelImage imgPanel2; PanelHistogram histPanel; PanelHistogram histPanel2; //Definizione del costruttore public MainFrame() { this.setTitle("Filtro Immagini"); 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"); this.bar.add(this.file); this.bar.add(this.isto); this.setJMenuBar(this.bar); this.imgPanel = new PanelImage(); this.histPanel = new PanelHistogram(); this.imgPanel2 = new PanelImage(); this.histPanel2 = new PanelHistogram(); GridBagConstraints lim = new GridBagConstraints(); pane.setLayout(layout);*/ 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.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); } }); } }
Soluzione:
Purtroppo non funziona.codice:JPopupMenu.setDefaultLightWeightPopupEnabled(false);
Altre idee?
Grazie![]()

Rispondi quotando
