Witam. Na wstępie chcę dodać że dopiero uczę się programowania w javie. Jestem w trakcie tworzenia gry i mam pewien problem. Mam przyciski jButton 3,4,5,6. Każdy z nich odpowiada za przesuwanie się postaci na mapie(mapa jest w kontenerze jPanel1). Problem jest podczas klikania tych przycisków, a dokładniej gdy je klikam z postacią(jLabel13) nic się nie dzieje. Mam przycisk testowy dodający expa jButton 1 oraz pasek z expem jProgressBar1. Nie wiem co zrobiłem źle ale żeby postać się przestawiła w pożądaną stronę muszę kliknąć jeden z przycisków do poruszania i dodawać expa. Dopiero gdy poziom postaci skoczy o 1 i pasek z expem się wyzeruje postać się przesuwa.
package mmorpg;
import java.awt.Color;
import javax.swing.UIManager;
/**
*
* @author Karol P.
*/
public class game1 extends javax.swing.JFrame {
/**
* Creates new form game1
*/
public void sprawdzlvl(){
if(s.exp>=1&s.exp<=10){
s.lvl=1;
s.maxexp=10;
s.maxxe=1;
}else if(s.exp>=11&s.exp<=25){
s.lvl=2;
s.maxexp=25;
s.maxxe=10;
}else if(s.exp>=26&s.exp<=50){
s.lvl=3;
s.maxexp=50;
s.maxxe=25;
}
jLabel10.setText("Nick - "+String.valueOf(s.lvl)+" lvl");
jProgressBar1.setMinimum(s.maxxe);
jProgressBar1.setMaximum(s.maxexp);
jProgressBar1.setValue(s.exp);
jLabel7.setText(String.valueOf(s.sila));
jLabel8.setText(String.valueOf(s.zrecznosc));
jLabel9.setText(String.valueOf(s.intelekt));
}
public game1() {
initComponents();
}
stat s=new stat();
public int heroX=1,heroY=1;
/**
* 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() {
jLabel11 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jProgressBar1 = new javax.swing.JProgressBar();
jLabel7 = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jButton2 = new javax.swing.JButton();
jButton1 = new javax.swing.JButton();
jPanel1 = new javax.swing.JPanel();
jLabel13 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
jButton5 = new javax.swing.JButton();
jButton6 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setBackground(new java.awt.Color(0, 0, 0));
setMaximumSize(new java.awt.Dimension(7, 537));
setMinimumSize(new java.awt.Dimension(7, 537));
setPreferredSize(new java.awt.Dimension(7, 537));
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel11.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
jLabel11.setForeground(new java.awt.Color(255, 255, 255));
jLabel11.setText(String.valueOf(s.zloto));
getContentPane().add(jLabel11, new org.netbeans.lib.awtextra.AbsoluteConstraints(603, 116, 75, -1));
jLabel10.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
jLabel10.setForeground(new java.awt.Color(240, 240, 240));
jLabel10.setText("Nick - "+String.valueOf(s.lvl)+" lvl");
jLabel10.setVerticalAlignment(javax.swing.SwingConstants.TOP);
getContentPane().add(jLabel10, new org.netbeans.lib.awtextra.AbsoluteConstraints(640, 40, 100, 30));
jLabel9.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
jLabel9.setForeground(new java.awt.Color(255, 255, 255));
jLabel9.setText(String.valueOf(s.intelekt));
getContentPane().add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(753, 112, -1, -1));
jLabel8.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
jLabel8.setForeground(new java.awt.Color(255, 255, 255));
jLabel8.setText(String.valueOf(s.zrecznosc));
getContentPane().add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(768, 99, -1, -1));
jProgressBar1.setFont(new java.awt.Font("Tahoma", 0, 8)); // NOI18N
jProgressBar1.setMaximum(s.maxexp);
jProgressBar1.setMinimum(s.maxxe);
jProgressBar1.setToolTipText(String.valueOf(s.exp)+" / "+String.valueOf(s.maxexp)
);
jProgressBar1.setValue(s.exp);
getContentPane().add(jProgressBar1, new org.netbeans.lib.awtextra.AbsoluteConstraints(567, 91, 120, 14));
jLabel7.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
jLabel7.setForeground(new java.awt.Color(255, 255, 255));
jLabel7.setText(String.valueOf(s.sila));
getContentPane().add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(732, 85, -1, -1));
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mmorpg/border-d.png"))); // NOI18N
jLabel1.setText("jLabel1");
jLabel1.setMaximumSize(new java.awt.Dimension(799, 7));
jLabel1.setMinimumSize(new java.awt.Dimension(799, 7));
jLabel1.setPreferredSize(new java.awt.Dimension(799, 7));
getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 30, -1, -1));
jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mmorpg/border-l.png"))); // NOI18N
jLabel2.setText("jLabel2");
getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 37, 7, -1));
jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mmorpg/border-r.png"))); // NOI18N
jLabel3.setText("jLabel3");
getContentPane().add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(823, 37, 6, -1));
jLabel4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mmorpg/border-u.png"))); // NOI18N
jLabel4.setText("jLabel4");
getContentPane().add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 574, 799, 7));
jLabel5.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
jLabel5.setForeground(new java.awt.Color(240, 240, 240));
jLabel5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mmorpg/dazed3.png"))); // NOI18N
jLabel5.setText("Nick - "+String.valueOf(s.lvl));
getContentPane().add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(549, 37, 274, 537));
jButton2.setText("+ 1 LvL");
getContentPane().add(jButton2, new org.netbeans.lib.awtextra.AbsoluteConstraints(900, 40, -1, -1));
jButton1.setText("+ 5 EXP");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
getContentPane().add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(900, 80, -1, -1));
jPanel1.setBackground(new java.awt.Color(255, 255, 255));
jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel13.setText("hero");
jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(250, 170, 32, 32));
jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));
jLabel12.setText("jLabel12");
jPanel1.add(jLabel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 510, 510));
getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(37, 37, 512, 512));
jTextField1.setText("jTextField1");
getContentPane().add(jTextField1, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 556, 371, 19));
jLabel6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mmorpg/bottom-bar.png"))); // NOI18N
jLabel6.setText("jLabel6");
getContentPane().add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(37, 549, 512, 25));
jButton3.setText("w");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
getContentPane().add(jButton3, new org.netbeans.lib.awtextra.AbsoluteConstraints(890, 120, 40, 40));
jButton4.setText("a");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
getContentPane().add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(850, 160, 40, 40));
jButton5.setText("s");
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton5ActionPerformed(evt);
}
});
getContentPane().add(jButton5, new org.netbeans.lib.awtextra.AbsoluteConstraints(890, 160, 40, 40));
jButton6.setText("d");
jButton6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton6ActionPerformed(evt);
}
});
getContentPane().add(jButton6, new org.netbeans.lib.awtextra.AbsoluteConstraints(930, 160, 40, 40));
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
s.exp=s.exp+5;
sprawdzlvl();
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
heroY=heroY-1;
jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32)); // TODO add your handling code here:
}
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
heroY=heroY+1;
jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
heroX=heroX-1;
jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));
}
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
heroX=heroX+1;
jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(game1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(game1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(game1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(game1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new game1().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private javax.swing.JLabel jLabel1;
public javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
public javax.swing.JLabel jLabel13;
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.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JProgressBar jProgressBar1;
private javax.swing.JTextField jTextField1;
// End of variables declaration
}