Ciao Bonny,
ho implementato il codice con lo JSlider:
public class Matrice extends javax.swing.JFrame {
private boolean done = false;
public Matrice() {
initComponents();
}
public Matrice(String name, int max, int attributi) {
initComponents(name, max, attributi);
}
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
private void initComponents(String name, int max, int attributi) {
jLabel1[attributi] = new javax.swing.JLabel();
jSlider1 = new javax.swing.JSlider();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Valutazione Attributi");
jLabel1[attributi].setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N
jLabel1[attributi].setText("Valuta l'attributo "+name+" in confronto all'attributo Y");
jSlider1.setFont(new java.awt.Font("Arial", 0, 18)); // NOI18N
jSlider1.setMajorTickSpacing(1);
jSlider1.setMaximum(5);
jSlider1.setMinimum(1);
jSlider1.setMinorTickSpacing(1);
jSlider1.setPaintLabels(true);
jSlider1.setPaintTicks(true);
jSlider1.setSnapToTicks(true);
jSlider1.setValue(1);
jButton1.setFont(new java.awt.Font("Arial", 0, 18)); // NOI18N
jButton1.setText("OK");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(65, 65, 65)
.addComponent(jLabel1[attributi]))
.addGroup(layout.createSequentialGroup()
.addGap(166, 166, 166)
.addComponent(jButton1))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jSlider1, javax.swing.GroupLayout.DEFAULT_SIZE, 391, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1[attributi])
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jSlider1, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 169, Short.MAX_VALUE)
.addComponent(jButton1)
.addContainerGap())
);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-300)/2, (screenSize.height-150)/2, 300, 150);
}// </editor-fold>//GEN-END:initComponents
private void initComponents() {
for (int i=0; i<8; i++){
jLabel1[i] = new javax.swing.JLabel();
jSlider1 = new javax.swing.JSlider();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Valutazione Attributi");
jLabel1[i].setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N
jLabel1[i].setText("Valuta l'attributo X in confronto all'attributo Y");
jSlider1.setFont(new java.awt.Font("Arial", 0, 18)); // NOI18N
jSlider1.setMajorTickSpacing(1);
jSlider1.setMaximum(5);
jSlider1.setMinimum(1);
jSlider1.setMinorTickSpacing(1);
jSlider1.setPaintLabels(true);
jSlider1.setPaintTicks(true);
jSlider1.setSnapToTicks(true);
jSlider1.setValue(1);
jButton1.setFont(new java.awt.Font("Arial", 0, 18)); // NOI18N
jButton1.setText("OK");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(65, 65, 65)
.addComponent(jLabel1[i]))
.addGroup(layout.createSequentialGroup()
.addGap(166, 166, 166)
.addComponent(jButton1))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jSlider1, javax.swing.GroupLayout.DEFAULT_SIZE, 391, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1[i])
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jSlider1, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 169, Short.MAX_VALUE)
.addComponent(jButton1)
.addContainerGap())
);
}
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-300)/2, (screenSize.height-150)/2, 400, 250);
}// </editor-fold>//GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO add your handling code here:
setDone(true);
}//GEN-LAST:event_jButton1ActionPerformed
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Matrice().setVisible(true);
}
});
}
public double visualizza() {
int rating;
this.setVisible(true);
while (!isDone()){}
rating = jSlider1.getValue();
this.dispose();
return rating;
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JSlider jSlider1;
private javax.swing.JLabel jLabel1[];
// End of variables declaration//GEN-END:variables
public boolean isDone() {
return done;
}
public void setDone(boolean done) {
this.done = done;
}
}
Adesso il problema è che quando lo compilo mi dice
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Matrice.initComponents(Matrice.java:80)
at Matrice.<init>(Matrice.java:6)
at Matrice.run(Matrice.java:151)
perchè non mi crea le 8 JLabels in automatico?