Java JMenuBar Problem

0

mam nastepujacy kod:

package javaapplication1;


import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLEventListener;
import javax.swing.*;


import javax.swing.SwingUtilities;

public class Main extends JFrame implements GLEventListener {

	Main() {
            
            
            
		super("OpenGL Test");
               
		setDefaultCloseOperation(EXIT_ON_CLOSE);
                setSize(800, 600);
		
		setLocationRelativeTo(null);
		pasek = new javax.swing.JMenuBar();
                
               

                javax.swing.JMenu fileMenu = new javax.swing.JMenu("File");
                javax.swing.JMenuItem oplik = new javax.swing.JMenuItem();
                pasek.add(fileMenu);                
                oplik = new JMenuItem("Otworz Plik...");
                fileMenu.add(oplik);
                setJMenuBar(pasek);
                
                oplik.addActionListener(new ActionListener() {
            private String path;
            private File plik;

            public void actionPerformed(ActionEvent e) {
                JFileChooser filechoose = new JFileChooser(path);
                filechoose.addChoosableFileFilter(new mytxt());
                filechoose.setAcceptAllFileFilterUsed(false);
                int tmp = filechoose.showOpenDialog(null);
                
                if(tmp == JFileChooser.APPROVE_OPTION){
                    plik = filechoose.getSelectedFile();
                    path = plik.getPath();
                   // białe(path);//usuwanie białych znakow
                    
                }
                //throw new UnsupportedOperationException("Not supported yet.");
            }
        });

                
		GLCanvas canvas = new GLCanvas();
		canvas.addGLEventListener(this);
		add(canvas);
		
		setVisible(true);
	}

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				new Main();
			}
		} );
	}

	// GLEventListener
	
	public void display(GLAutoDrawable drawable) {
		GL gl = drawable.getGL();
		gl.glClear(GL.GL_COLOR_BUFFER_BIT);

		// narysuj trójkąt
		gl.glBegin(GL.GL_TRIANGLES);
			gl.glColor3f(1.0f, 0.0f, 0.0f); // r
			gl.glVertex2f(0.0f, 1.0f);
			
			gl.glColor3f(0.0f, 1.0f, 0.0f); // g
			gl.glVertex2f(-1.0f, -1.0f);

			gl.glColor3f(0.0f, 0.0f, 1.0f); // b
			gl.glVertex2f(1.0f, -1.0f);
		gl.glEnd();
		
		gl.glFlush();
	}
	
	public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) { }

	public void init(GLAutoDrawable drawable) {
		GL gl = drawable.getGL();
		System.err.printf("\tGL_VENDOR = %s\n", gl.glGetString(GL.GL_VENDOR));
		System.err.printf("\tGL_RENDERER = %s\n", gl.glGetString(GL.GL_RENDERER));
		System.err.printf("\tGL_VERSION = %s\n", gl.glGetString(GL.GL_VERSION));
		
		gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
		gl.glDisable(GL.GL_DEPTH_TEST);
		// ...
	}

	public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
		GL gl = drawable.getGL();
		gl.glViewport(x, y, width, height);
		gl.glMatrixMode(GL.GL_PROJECTION);
		gl.glLoadIdentity();
		// ...
	}
          private javax.swing.JMenuBar pasek;
          private javax.swing.JPanel mainPanel;
}

Program wyswietla figury w opengl. Problem mam taki ze po dodaniu kanwy menu rozwija sie pod kanwa a nie nad nia co moze byc przyczyna i jak to zmienic??

0

mialem ten sam problem przy komponencie video w JMF ale nie wiem jak to rozwiazac (choc szczegolnie nie szukalem)

1 użytkowników online, w tym zalogowanych: 0, gości: 1