Avatar billede superanden Nybegynder
06. maj 2009 - 18:53 Der er 7 kommentarer og
1 løsning

Hvor skal main metoden placeres i en GUI?

Hej jeg har lavet en GUI i netbeans som jeg ikke kan få startet fordi jeg ikke kan få den til at acceptere de steder jeg forsøger at placere min main metode. Vil egentlig helst have main klassen i java filen som indeholder GUI'en men vil også gerne høre hvordan man starter GUI'en fra en anden klasse.

Min GUI ser således ud:
import javax.swing.*;

public class NicolajGUI extends javax.swing.JPanel {


    /** Creates new form NicolajGUI */
        public static void main(String [] args){
       
        }
        public void
        initComponents();   

    /** This method is called from within the constructor to
    * initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    */
    @SuppressWarnings("unchecked")
   


    private void initComponents() {

        jLabel3 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jButton2 = new javax.swing.JButton();
        jLabel2 = new javax.swing.JLabel();
        jTextField2 = new javax.swing.JTextField();
        jLabel8 = new javax.swing.JLabel();
        jTextField3 = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();

        jLabel3.setFont(new java.awt.Font("Cooper Black", 1, 24)); // NOI18N
        jLabel3.setText("Higher / Lower - Game");

        jTextField1.setText("jTextField1");
        jTextField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField1ActionPerformed(evt);
            }
        });

        jButton1.setText("Higher!");

        jLabel1.setText("Higher");

        jButton2.setText("Lower!");

        jLabel2.setText("Lower");

        jTextField2.setText("jTextField1");

        jLabel8.setText("Balance:");

        jTextField3.setText("jTextField3");

        jLabel4.setText("Previous Card");

        jLabel6.setIcon(new javax.swing.ImageIcon("C:\\Documents and Settings\\Signifikans4\\Dokumenter\\NetBeansProjects\\Nicolaj\\src\\nicolaj\\images\\back.png")); // NOI18N

        jLabel7.setIcon(new javax.swing.ImageIcon("C:\\Documents and Settings\\Signifikans4\\Dokumenter\\NetBeansProjects\\Nicolaj\\src\\nicolaj\\images\\back.png")); // NOI18N

        jLabel5.setText("Next Card");

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 391, Short.MAX_VALUE)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jLabel3)
                    .add(layout.createSequentialGroup()
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(layout.createSequentialGroup()
                                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                    .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(jButton1)
                                    .add(jLabel1))
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                    .add(jButton2)
                                    .add(layout.createSequentialGroup()
                                        .add(jLabel2)
                                        .add(36, 36, 36))
                                    .add(jTextField2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                            .add(jLabel8)
                            .add(jTextField3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .add(38, 38, 38)
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(jLabel4)
                            .add(jLabel6))
                        .add(53, 53, 53)
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(jLabel7)
                            .add(jLabel5))))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 196, Short.MAX_VALUE)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jLabel3)
                .add(18, 18, 18)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jLabel4)
                    .add(jLabel5)
                    .add(jLabel8))
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(15, 15, 15)
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                            .add(jLabel6)
                            .add(jLabel7)))
                    .add(layout.createSequentialGroup()
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jTextField3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(21, 21, 21)
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                            .add(jLabel1)
                            .add(jLabel2))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                            .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(jTextField2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                            .add(jButton1)
                            .add(jButton2))))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
}
    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
}


    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    // End of variables declaration

}
Avatar billede superanden Nybegynder
06. maj 2009 - 18:57 #1
hov der er vist en kopierings fejl i starten det skulle selvfølgelig være
public NicolajGUI() {
  initComponents();
}
Avatar billede arne_v Ekspert
06. maj 2009 - 20:45 #2
...
public class NicolajGUI extends JPanel {
    public static void main(String [] args){
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JPanel f = new NicolajGUI();
                f.setVisible(true);
            }
        });
    }
    public NicolajGUI() {
        initComponents(); 
    }
    private void initComponents() {
        ...

PS: Kan man have en JPanel uden en JFrame????
Avatar billede mathiase Nybegynder
07. maj 2009 - 13:24 #3
Ikke umiddelbart.. Der skal være en heavy container.
Avatar billede arne_v Ekspert
07. maj 2009 - 15:00 #4
Saa skal JPanel nok erstattes med JFrame for at det virker.
Avatar billede arne_v Ekspert
04. juli 2009 - 04:35 #5
superanden ?
Avatar billede superanden Nybegynder
11. januar 2010 - 12:12 #6
arne tak for hjælpen, smid et svar!
Avatar billede arne_v Ekspert
11. januar 2010 - 15:04 #7
kommer her
Avatar billede faran Nybegynder
20. januar 2010 - 14:10 #8
Man kan godt have JPanel uden JFrame. Det kan ses ved et eksempel med tabbedPane fra SUN.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester