עבור לתוכן

עזרה ב JAVA ב NETBEANS

Featured Replies

פורסם

אני מנסה כבר שעה לעשות משהו פשוט עם NETBEANS ואני לא מצליח לעבוד עם האובייקטים.

הבעייה היא שאני לא מבין את המבנה של סביבת התיכנות הזאת. אני יודע לעבוד עם JAVA ( ב ECLIPSE).

אני מנסה לבנות שעון טקסט פשוט. אני משתמש ב THREAD כדי ליצור השהייה של שנייה, וחישובים פשוטים על משתנה INT פשוט כדי ליצור שעון.

הבעייה שלי היא בגישה אל אובייקט הטקסט עצמו ואיפה אני בכלל אמור לשים את הקוד עצמו.

הקוד שכתבתי:



package javaapplication1;
import java.lang.String;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author אודי
*/
public class NewJFrame extends javax.swing.JFrame {

/** Creates new form NewJFrame */
public NewJFrame() {
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.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jTextField1 = new javax.swing.JTextField();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jTextField1.setText("jTextField1");

org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(120, 120, 120)
.add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 168, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap(112, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(168, 168, 168)
.add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 30, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap(102, Short.MAX_VALUE))
);

pack();
}// </editor-fold>

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
start();
}
});

}

public void start() {
Thread t = new Thread();
String s = new String();
int sec=0;
while (true){
s = (((sec / 3600) % 24) + ":" + ((sec / 60) % 60) + ":" + (sec % 60));
jTextField1.setText(s);
sec = (sec + 1) % 84600;
try {
t.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
// Variables declaration - do not modify
private javax.swing.JTextField jTextField1;
// End of variables declaration

}

פורסם

t זה אובייקט אחר, שהפקודה:

t.sleep(1000);

משהה את עצמו.

בשביל להשהות את הקוד המקומי משתמשים ב:

Thread.sleep(x);

(sleep זו מתודה סטטית)

עריכה:

אגב, הקוד שלך נראה מוזר-משהו - כדאי שתבדוק TUTORIALים של MultiThreading בג'אווה

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים