문제를 해결하려고 노력하지만 왜 작동하지 않는지 알 수 없습니다. 내가 너를 노르웨이의 의견과 변수와 혼동하면 미안하다.DefaultListModel을 JList로 업데이트하고 서브 클래스를 확장하여
먼저 내 form.java 파일입니다.
import java.awt.FlowLayout;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.ListSelectionModel;
public class Form implements ActionListener {
String[] ansatt_type = {"Sjef","Mellomleder","Assistent"};
String totlønn;
// KOMPONENTER FOR GUI START
JList ansatte;
DefaultListModel model;
JLabel label1 = new JLabel();
JComboBox ansatt_id = new JComboBox (ansatt_type);
JButton add_me = new JButton();
JLabel lønn = new JLabel();
// KOMPONENTER FOR GUI SLUTT
public Form() {
// LAGER RAMME START
JFrame ramme = new JFrame();
ramme.setBounds(0,0,275,400);
ramme.setTitle("Ansatt kontroll");
ramme.setLayout(new FlowLayout());
ramme.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// LEGGER TIL TEXT LABEL1
label1.setText("Liste over ansatte: ");
ramme.add(label1);
// LEGGER TIL DEFAULTLISTMODEL
model = new DefaultListModel();
ansatte = new JList(model);
ansatte.setBounds(0, 0, 200, 200);
model.addElement("KU");
ramme.add(ansatte);
// LEGGER TIL DROPDWON LIST;
ramme.add(ansatt_id);
// LEGGER TIL ANSATT KNAPP
add_me.setText("Legg til ny ansatt");
ramme.add(add_me);
add_me.addActionListener(this);
// LEGGER TIL SAMLEDE LØNNSKOSTNADER
totlønn = "Totale lønnskostnader er : eksempeltall";
lønn.setText(totlønn);
ramme.add(lønn);
ramme.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent arg0) {
JOptionPane.showMessageDialog(null, "Du har valgt:
"+ansatt_id.getSelectedItem()+"!" +
" Du blir nå videreført og kan legge til en ny ansatt");
if(ansatt_id.getSelectedItem() == "Sjef"){
System.out.println("Valgt Sjef");
Sjef sj = new Sjef();
model.addElement(sj);
}
if(ansatt_id.getSelectedItem() == "Mellomleder"){
System.out.println("Valgt Mellomleder");
}
if(ansatt_id.getSelectedItem() == "Assistent"){
System.out.println("Valgt Assistent");
}
}
}
는 또한 몇 가지 클래스 fiels가에서 확장 Ansatt.java라는 클래스 파일이 있습니다. 내가 보여줄거야.
첫 번째 my Ansatt.java 파일;
import javax.swing.JOptionPane;
public class Ansatt extends Form {
public String Navn;
public int Lønn;
public String Type;
public Ansatt() {
Navn = JOptionPane.showInputDialog(null, "Skriv inn navn på ny ansatt: ");
System.out.println("Ansatt lag til i liste");
}
public String toString(){
return Navn + " " + Type;
}
}
그리고 확장 한 클래스 Sjef.java
public class Sjef extends Ansatt {
public Sjef() {
super();
this.Lønn = 40000;
this.Type = "Sjef";
}
}
모든 것이 ModelList 늘 업데이트를 제외하고, 작동, 내가 거의 동일하지만,이 하나의 단지 doesent 작품 작업 예제를 가지고!
ansatt_id.getSelectedItem() == "Sjef"
가능성이 가장 높은 true
을 반환하지 않습니다 :
'setBounds()'를 사용하지 마십시오. 대신에, 여러분이 선택한 레이아웃을'pack()'합니다. 귀하가 설명하는 문제를 나타내는 [sscce] (http://sscce.org/)를 포함하도록 질문을 편집하십시오. [* 초기 스레드 *] (http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html) 및 예제 [여기] (http://stackoverflow.com/a/5760093)를 참조하십시오./230513) 및 [여기] (http://stackoverflow.com/a/5372169/230513). – trashgod