Netbeans og Javax.swing.JFrame - At få kode i en class hægtet på GUI-styring i Netbeans
Jeg vil gerne kunne styre mit layout ( getContentPane() ) mere grafisk end ren kode. Det burde jeg kunne gøre i Netbeans med dets JFrame-opsætning.Fra et tidligere spørgsmål: http://www.eksperten.dk/spm/945223?utm_source=qna&utm_medium=rss
- er jeg kommet frem til at blande koden fra en grafisk standard-opsætning af en JFrame og så en kode hvor jeg ved en 'onclick'-hændelse udskifter et billede:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
/**
*
* @author TD_DS_IS
*/
public class PicSwap extends javax.swing.JFrame {
/** Creates new form f */
/** 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")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 415, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/ private JButton pic;
private int ix;
private String[] fnm = { "C:\\red.jpg", "C:\\green.jpg", "C:\\blue.jpg"};
private void update() {
pic.setIcon(new ImageIcon(fnm[ix]));
ix = (ix + 1) % fnm.length;
}
public PicSwap() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Picture swap");
getContentPane().setLayout(new BorderLayout());
pic = new JButton();
pic.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
update();
}
});
getContentPane().add(pic, BorderLayout.CENTER);
ix = 0;
update();
pack();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame f = new PicSwap();
f.setVisible(true);
}
});
}
// Variables declaration - do not modify
// End of variables declaration
}
- - -
- problemet er så bare her at buildet ikke "lytter" til 'private void initComponents()'-klassen, hvori den grafiske længde og bredde defineres?
