У нас есть страница А, которая имеет Jtable и World_info_object «информация». эта таблица показывает данные от людей (люди находятся в мировой информации). Я хочу отредактировать «информацию», чтобы у каждого человека была кнопка редактирования, а также на этой странице есть кнопка «+ NEW». Эти кнопки слушателей действий: (редактировать почти то же самое)Обновить данные из другого фрейма
newPerson.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
personFrame=new PersonPage(getInfo() , null);
Thread closing =new Thread(new Runnable() {
@Override
public void run() {
while(true){
if(personFrame.getConfirmed()==true){
setWorldInfo(personFrame.getInfo());
personFrame.setVisible(false);
personFrame.dispose();
System.out.println("closed");
updateTableData(); // repaint table !
break;
}
System.out.println("open...");
}
}
}, "closingWindow");
closing.start();
}
});
AS вы можете увидеть здесь нить ищет изменения в булево подтвердил, которые я делаю это верно, когда пользователь нажимает кнопку Окей или кнопку отмены в personFrame! Назначение - getInfo() из personFrame и установить его здесь в PageA (первый кадр), и это делается этим, но этот поток делает «Исключение в потоке» AWT-EventQueue-0 «java.lang.ArrayIndexOutOfBoundsException: 5> = 5».
Если кто-нибудь знает, как решить это исключение или как я УстановитьДанные отправлено с другой страницы непосредственно перед закрытием его, пожалуйста, скажите мне ... (Или, может быть проблема с таблицей)
Исключение: http://i.stack.imgur.com/UnZnd.png
** Обновление
Все, что я хочу сделать, это сделать pageB со страницыA и отправить ему информацию (что сделано), а затем после подтверждения или закрытия pageB запустить функцию update(); в разделеA! Есть идеи ? :)
**
// ПОЧТИ решаемая ПРОГРАММА:
общественного класс расширяет JFrame страницы A {
private static HashMap<Integer, String>info=new HashMap<Integer,String>();
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
info.put(1, "Sofia");
info.put(2, "XSR");
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
PageA frame = new PageA();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public PageA() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(80, 80, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButton btnNewButton = new JButton("Open pageB");
btnNewButton.setBounds(126, 11, 160, 23);
btnNewButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
final PageB pageB=new PageB(info);
pageB.addWindowListener(new WindowAdapter(){ // add listener to detect
public void windowClosing(WindowEvent e){
setInfo(pageB.getInfo());
System.out.println("xxxx");
}
});
}
});
contentPane.add(btnNewButton);
}
public void setInfo(HashMap<Integer, String> uinfo){
this.info=info;
}
}
общественного класс расширяет JFrame Страницы B {
private JPanel contentPane;
private HashMap<Integer, String> info;
public PageB(HashMap<Integer, String> info) {
this.info=info;
this.info.put(113, "Alfred");
this.info.put(314, "Alfa");
this.info.put(13, "Luter");
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
final PageB that=this;
JButton btnOkayDone = new JButton("Okay , Done");
btnOkayDone.setBounds(34, 228, 130, 23);
btnOkayDone.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// add event for closing
that.dispatchEvent(new WindowEvent(that, WindowEvent.WINDOW_CLOSING));
}
});
contentPane.add(btnOkayDone);
this.setVisible(true);
}
public HashMap<Integer, String> getInfo(){
return info;
}
}
Вы можете вставить полный след исключения и какая линия именно вы получите исключение? Это в getInfo, что вы получаете исключение? – SMA
@almasshaikh: Исключение: http://i.stack.imgur.com/UnZnd.png 0> = 0 изменяется на 6> = 6 или 4> = 4 каждый раз, когда он отличается!? –
По-прежнему сложно определить, какая строка из вашего кода выбрасывает исключение как его не полную трассировку стека. – SMA