안녕하세요, 저는 하나의 JPanel에서 다른 JPanel로 값을 전달하려고합니다. 내가 그것을 전달할 생성자가 없기 때문에 나는 그것을 이해할 수 없다. "CallsPanel"클래스의 JTextField에서 컨텍스트를 가져와 내 "ActiveCall"에 전달하려고합니다.하나의 JPanel에서 다른 JPanel로 값을 전달하려고합니다.
public class ActiveCall extends JPanel {
private MainFrame frame;
private JLabel lblNumber;
private JButton btnHangUp;
private Controller controller = new Controller();
public ActiveCall(MainFrame frame) {
this.frame = frame;
this.setSize(300, 380);
this.setLocation(10, 10);
lblNumber = new JLabel();
this.add(lblNumber);
lblNumber.setLocation(10, 10);
this.lblNumber.setSize(270, 40);
btnHangUp = new JButton("Læg på");
this.add(btnHangUp);
btnHangUp.setLocation(10, 270);
this.btnHangUp.setSize(270, 40);
btnHangUp.addActionListener(controller);
}
private class Controller implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JButton source = (JButton) e.getSource();
if (source == btnHangUp) {
frame.showPanel("Calls"); //TODO: SKAL AFSLUTTE OPKALD, GEMME DET I - OG REDIRECT TIL LOGGEN!
}
}
}
}
public class CallsPanel extends JPanel {
private MainFrame frame;
private JTextField txfCall;
private JButton btnSearch, btnCall, btnCallLast, btnDelete;
private JList lstOpkald;
private JScrollPane scpOpkald;
private Controller controller = new Controller();
public CallsPanel(MainFrame frame) {
this.frame = frame;
this.setSize(300, 380);
this.setLocation(10, 10);
txfCall = new JTextField();
this.add(txfCall);
txfCall.setLocation(10, 10);
txfCall.setSize(210, 40);
txfCall.setText("Indtast Telefonnummer...");
txfCall.addActionListener(controller);
btnCall = new JButton("Ring Op");
this.add(btnCall);
btnCall.setLocation(10, 60);
btnCall.setSize(270, 40);
btnCall.addActionListener(controller);
lstOpkald.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent arg0) {
// TODO Sætter valgte nummer op i JTextField
if(!lstOpkald.isSelectionEmpty())
txfCall.setText(Integer.toString(Service.getOpkaldList().get(lstOpkald.getSelectedIndex()).getTelefonnummer()));
}
});
}
private class Controller implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JButton source = (JButton) e.getSource();
if (source == btnSearch) { //SKAL ÅBNE EN NY TOM FRAME, HVOR MAN KAN SØGE OG VÆLGE EN KONTAKT HVOR TELEFONNUMMERET BLIVER AUTOMATISK PASTET IND I TLFNUMMER TEKSTFELTET!
}
if (source == btnCall) { //TODO: SKAL SIMULERE ET OPKALD!
frame.showPanel("ActiveCall");
}
if (source == btnCallLast) { //TODO: SKAL SIMULERE ET OPKALD FRA DET SIDSTE OPKALDTE NUMMER!
frame.showPanel("ActiveCall");
}
if (source.equals(btnDelete)) { // SLETTER MARKERET OPKALD FRA ARRAYLIST!
Opkald2 opkald = (Opkald2) lstOpkald.getSelectedValue();
if (opkald != null)
{
Service.deleteOpkald(opkald);
}
updateOpkaldList();
}
}
private void updateOpkaldList()
{
//Listen over opkald opdateres
lstOpkald.setListData(Service.getOpkaldList().toArray());
}
}
public String getNumber()
{
String number = txfCall.getText();
return number;
}
}
팁 : 사람들이 실제 문제에 집중할 수 있도록 불필요한 입력란을 정리하십시오. 전체 수업을 덤핑하는 것은 좋은 일이 아닙니다. – givanse
나는 그것을 조금 닦으려고 노력했다, 나는 그것이 충분한 지 모른다. trashgod 나는 생각보다 간단한 뭔가가 필요합니다. – user2993005