-
12-03-2014, 08:19 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Nuốt sự kiện để nó không gửi thông tin đóng:
WindowEvent.consume();View more random threads:
- Không thể gọi được Class SendMail
- Thắc mắc về ObjectStream
- Lỗi "Java Virtual Machine Launcher"
- giúp mình sửa lỗ code này với
- Lỗi khóa chính khi insert trong java Swing
- Giúp mình viết Code Java này với
- eclipse báo lỗi. button.addActionListener(this)
- Cần Pro giúp gấp chèn đoạn desc sql vào java
- [HELP]Lấy dữ liệu từ trang html
- Lỗi không thể tìm thấy haykhông thể tải main class
-
12-03-2014, 08:50 AM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi SITUVNX
-
12-03-2014, 09:00 AM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Thế thì không cần phải làm gì hết, giữ nguyên code thế này là đủ (không cần phải xử lý gì hết), bạn thử lại xem [IMG]images/smilies/daydreaming.gif[/IMG]:
Mã:private void formWindowClosing(java.awt.event.WindowEvent evt) { // TODO add your handling code here: if (saved != true) { int cont = JOptionPane.showConfirmDialog(null, "Do you want to save this text?","",JOptionPane.YES_NO_CANCEL_OPTION); if (cont == JOptionPane.YES_OPTION) { try { String sel = (String) cliptran.getTransferData(DataFlavor.stringFlavor); taText.replaceRange(sel, taText.getSelectionStart(), taText.getSelectionEnd()); } catch (Exception exc) { System.out.println("not string flavour"); } } }
-
12-03-2014, 09:30 AM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi pato24193
-
12-03-2014, 12:40 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
@pato24193: Bạn ấy dang chặn sự kiện đóng chứ không phải đang ở sự kiện thường.
@lethianqt94: Thế tham số của sự kiện đó chả là kiểu java.awt.event.WindowEvent à?
Lập trình Java thì bạn cũng biết cách đọc Java-Doc chứ.
Mã:evt.consume(); // để nuốt sự kiện
-
12-03-2014, 07:30 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Thực thi cancel button ở confirm dialog
Khi mình kích nút (X) ở cửa sổ notepad (của mình đang làm) thì xuất hiện confirm dialog có muốn lưu file không. Chọn Yes thì lưu rồi thoát, No thì thoát luôn ko lưu. 2 cái đó thì chạy ổn nhưng kích vào nút cancel thì nó thoát luôn cửa sổ màn hình chính. Mình muốn hỏi làm sao để khi kick vào Cancel thì chỉ đóng dialog thôi chứ cửa sổ chính thì vẫn giữ nguyên.
Đây là code mình đang làm:
Mã:private void formWindowClosing(java.awt.event.WindowEvent evt) { // TODO add your handling code here: if (saved != true) { int cont = JOptionPane.showConfirmDialog(null, "Do you want to save this text?","",JOptionPane.YES_NO_CANCEL_OPTION); // JOptionPane.setRootFrame(this);s if (cont == JOptionPane.YES_OPTION) { try { String sel = (String) cliptran.getTransferData(DataFlavor.stringFlavor); taText.replaceRange(sel, taText.getSelectionStart(), taText.getSelectionEnd()); } catch (Exception exc) { System.out.println("not string flavour"); } } else if (cont == JOptionPane.CANCEL_OPTION) { //phải làm gì ở đây để nó chỉ đóng cái jdialog mà không đóng cửa sổ chính } } }
-
13-03-2014, 08:56 AM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi SITUVNX
- - - Nội dung đã được cập nhật ngày 13-03-2014 lúc 01:56 AM - - -
Mình đã sửa lại (không biết có đúng không) nhưng nó bị lỗi như này. Mọi người xem giùm mình với
Mã:private void formWindowClosing(java.awt.event.WindowEvent evt) { // TODO add your handling code here: int cont = JOptionPane.showConfirmDialog(null, "Do you want to save this text?"); if (cont == JOptionPane.YES_OPTION) { try { String sel = (String) cliptran.getTransferData(DataFlavor.stringFlavor); taText.replaceRange(sel, taText.getSelectionStart(), taText.getSelectionEnd()); } catch (Exception exc) { System.out.println("not string flavour"); } } else if (cont == JOptionPane.CANCEL_OPTION) { ((WindowEvent)evt).consume();// LỖI Ở DÒNG NÀY //consume() has protected access in AWTEvent } }
-
13-03-2014, 11:29 AM #8Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
À, quên nhỉ, bạn kéo thả và bắt sự kiện cũng nhờ vào chức năng kéo thả nên không gọi đến consume() được.
Còn 1 cách nữa là:
Gọi phương thức này trong hàm dựng của Frame
Mã:setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); // Dòng này sẽ làm JFrame khoonng làm gì (khộng đóng) khi mình nhấn nút X.
Trong sự kiện sẽ:
Mã:private void formWindowClosing(java.awt.event.WindowEvent evt) { // TODO add your handling code here: int cont = JOptionPane.showConfirmDialog(null, "Do you want to save this text?"); if (cont == JOptionPane.YES_OPTION) { try { String sel = (String) cliptran.getTransferData(DataFlavor.stringFlavor); taText.replaceRange(sel, taText.getSelectionStart(), taText.getSelectionEnd()); Dispose(); // Gọi dòng này để đóng JFrame. // Hoặc // System.exit(0); } catch (Exception exc) { System.out.println("not string flavour"); } } else if (cont == JOptionPane.CANCEL_OPTION) { // Không cần là gì chỗ này. } }
-
13-03-2014, 03:05 PM #9Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi SITUVNX
Thanh lý pallet nhựa cũ Đaklak Trải dài trên vùng đất Daklak, những chiếc pallet nhựa cũ Đaklak nằm rải rác như những bức tranh tĩnh lặng, kể lể về những chặng đường mà chúng đã đi qua. Những đường...
Thanh lý pallet nhựa cũ Đaklak