Tôi đang cố gắng ngăn người dùng thay đổi tab khi tab hiện tại không hợp lệ. Vì vậy, khi anh ấy nhấp vào một tab, tôi muốn kiểm tra xem tab hiện tại có "hợp lệ" hay không và nếu không, hãy ở lại tab hiện tại. tôi cố gắng sử dụng một VetoableChangeListener mà không hiệu quả, các mã không bao giờ đi bên trong phương pháp vetoableChange:Thay đổi tab cấm trong JTabbedPane
jTabbedPane.addVetoableChangeListener(new VetoableChangeListener() {
@Override
public void vetoableChange(PropertyChangeEvent evt) throws PropertyVetoException {
if (!isCurrentTabValid()) {
throw new PropertyVetoException("test", evt);
}
}
});
Làm thế nào tôi có thể làm điều này đúng cách?
Cảm ơn!
Công cụ này rất hữu ích cho việc thay đổi tab, nhưng bạn làm cách nào để tab phủ quyết đóng? 'vetoableChange' được gọi sau khi tab được đóng và khi tab trước đó được chọn. Tôi đã tìm kiếm trên internet cho vetoableClose, nhưng không có lần truy cập nào. –
âm thanh không liên quan/mở rộng - vui lòng đăng câu hỏi với SSCCE – kleopatra
Không sao, tôi đã giải quyết được. Tôi đã thêm một thành phần nút trên mỗi tab để đóng chúng lại. Nó gọi 'JTabbedPane.remove (tabIndex)'. Tôi xoay xở để giải quyết nó. Tôi đang chọn tab trước đó trước khi đóng tab hiện tại để phương thức 'valueChanged' được gọi. –