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??