Προς το περιεχόμενο

java ερώτηση


argate7

Προτεινόμενες αναρτήσεις

Δημοσ.

Παιδιά νέο πρόβλημα..

 

Θέλω να επιλέξω από μία λίστα έναν υπάλληλο και πατώντας ένα κουμπί να μου εμφανίσει μία νέα σελίδα με τα textfields γεμάτα από τα στοιχεία του. Δηλαδή το όνομα, το επώνυμο και η ηλικία να είναι ήδη γραμμένα στα νέα textfields. Κάτι σαν update ας πούμε.

 

Στην πρώτη φόρμα στο κουμπί του "select" έχω τον παρακάτω κώδικα :

 

if (e.getSource() == selectbutton) {

fFrame = new updateframe(mylist.getSelectedIndex());

fFrame.setVisible(true);

setVisible(false);

}

 

Η νέα φόρμα λοιπόν, είναι έτσι :

 

newframe(int i) {

super("Στοιχεία");

JPanel panel = new JPanel(new GridLayout(10, 2));

JPanel buttonpanel = new JPanel();

JLabel lnlbl = new JLabel("Last Name :");

JTextField lntxf = new JTextField(emp.get(i).getLastname());

lntxf.setHorizontalAlignment(JTextField.LEFT);

lnlbl.setLabelFor(lntxf);

JLabel fnlbl = new JLabel("First Name :");

JTextField fntxf = new JTextField(emp.get(i).getFirstname());

fntxf.setHorizontalAlignment(JTextField.LEFT);

fnlbl.setLabelFor(fntxf);

JLabel albl = new JLabel("First Name :");

JTextField atxf = new JTextField(emp.get(i).getAge());

atxf.setHorizontalAlignment(JTextField.LEFT);

albl.setLabelFor(atxf);

.

.

.

.

.

}

 

Και μου πετάει Null Pointer Exception στις παρακάτω γραμμές κώδικα...

 

JTextField lntxf = new JTextField(emp.get(i).getLastname());

JTextField fntxf = new JTextField(emp.get(i).getFirstname());

JTextField atxf = new JTextField(emp.get(i).getAge());

 

Τι πρέπει να κάνω εδώ για να το διορθώσω αυτό το πρόβλημα? Δεν μπορώ να καταλάβω γιατί χτυπάει πρόβλημα εκεί.

 

Ευχαριστώ και πάλι για τη βοήθεια!!

 

 

>
........
JLabel lnlbl = new JLabel("Last Name :");
System.out.println(emp);//ΑΝ ΣΟΥ ΤΥΠΩΣΕΙ null ΔΕΝ ΕΙΝΑΙ ΑΡΧΙΚΟΠΟΙΗΜΕΝΟ θέλει emp=new ArrayList<...>() 
JTextField lntxf = new JTextField(emp.get(i).getLastname());
lntxf.setHorizontalAlignment(JTextField.LEFT);
................

Δημοσ.

Ναι έτσι κάνεις δήλωση αλλα δεν ξέρω τι θέλεις να πας να κάνεις, λανθασμένο μου φαίνεται... για το "ι" δεν εννοούσα αν παίρνει τιμή το ίδιο αλλά αν ειναι ας πούμε το 5, βεβαιώσου οτι η λίστα σου έχει αρκετά αντικείμενα μέσα της.

 

το πρόβλημα που αναφέρεις θα ήταν αν το exception ήταν IndexOutOfBoundsException και όχι NullPointerException

 

δείτε και το παρακάτω παράδειγμα

 

>
import java.util.ArrayList;
public class Testx{
	ArrayList<String> emp;
public Testx(){
	System.out.println("1o---->"+emp);//το emp δεν είναι αρχικοποιημένο άρα null
	try{
		System.out.println("2o---->"+emp.get(1));//ζητάει την θέση 1 μιας μη αρχικοποιημένης λίστας 
	}catch(NullPointerException e){
		System.out.println("2o---->(error)="+e);//άρα λάθος NullPointerException
	}
	emp=new ArrayList<String>();//αρχικοποίηση λίστας
	System.out.println("3o---->"+emp);//αντι null εμφανίζει 2 αγκύλες
	try{
		System.out.println("4o---->"+emp.get(1));//ζητάει την θέση 1 της λίστας που δεν υπάρχει
	}catch(IndexOutOfBoundsException e){
		System.out.println("4o---->(error)="+e);//αρα λάθος IndexOutOfBoundsException
	}
	emp.add("sdfsdf");//θέση 0
	emp.add("xxxxx");//θέση 1
	System.out.println("5o---->"+emp);//εμφανίζει τα στοιχεία της λίστας
	System.out.println("6o---->"+emp.get(1)); //και τέλος τα περιεχόμενα της θέσης 1	
}
public static void main(String args[]){
	new Testx();
}
}

 

Και στην περίπτωση που τυπώνει [] τί κάνουμε?

 

η λίστα είναι αρχικοποιημένη αλλά κενή ,δεν έχει δεδομένα

Δημοσ.

Γιατί δεν το γράφεις εδώ, να πληροφορηθεί και το υπόλοιπο forum;

 

 

Ζήτησα όλο τον κώδικα του project για να βοηθήσω στην λύση του τον χρήστη argate7

ο κώδικας δεν είναι δικός μου για να τον ποστάρω.

Αν ο argate7 το θέλει ας το κάνει αυτός.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...