JAVA Thiết kế giao diện động với Swing

7 364 0
JAVA Thiết kế giao diện động với Swing

Đang tải... (xem toàn văn)

Thông tin tài liệu

Tóm tắt: Bộ công cụ Giao diện người dùng (UI) của Swing làm cho nó có thể,mặc dù không luôn dễ dàng, cập nhật động các giao diện người dùng để đáp lạicác sự kiện hoặc hành động của người dùng. Bài viết này xem xét một số cách phổbiến mà bạn có thể xây dựng các UI được cập nhật động, xem xét vài cạm bẫy cóthể gặp trên đường đi và một số nguyên tắc để giúp bạn quyết định khi nào đây làcách tiếp cận thích hợp cho công việc.Bộ công cụ Swing cung cấp nhiều công cụ để tạo các giao diện người dùng và mộtmảng kì lạ về các tùy chọn để thay đổi các giao diện này trong vòng đời củachương trình. Sử dụng cẩn thận các tính năng này có thể dẫn đến giao diện thíchứng động theo nhu cầu của người dùng và đơn giản hóa tương tác. Sử dụng khôngcẩn thận các tính năng tương tự có thể dẫn đến các chương trình rất khó hiểu hoặcthậm chí các chương trình hoàn toàn không sử dụng được. Bài viết này giới thiệucông nghệ và triết lý về các UI động và giúp bạn vượt qua lúc khó khăn khi xâydựng các UI hiệu quả. Bạn sẽ thay đổi mã nguồn dựa trên ứng dụng chương trìnhgiới thiệu (demo) của SwingSet2 được đảm bảo với JDK của Sun (xemResources); UI của ứng dụng này sử dụng một số đặc tính động và dùng như mộtđiểm khởi đầu tuyệt vời để hiểu chúng

Thiết kế giao diện động với Swing Chuyến đến vùng Swing API Peter Seebach, Tác giả, 自由职业者 Tóm tắt: Bộ công cụ Giao diện người dùng (UI) Swing làm cho có thể, không dễ dàng, cập nhật động giao diện người dùng để đáp lại kiện hành động người dùng Bài viết xem xét số cách phổ biến mà bạn xây dựng UI cập nhật động, xem xét vài cạm bẫy gặp đường số nguyên tắc để giúp bạn định cách tiếp cận thích hợp cho công việc Bộ công cụ Swing cung cấp nhiều công cụ để tạo giao diện người dùng mảng kì lạ tùy chọn để thay đổi giao diện vòng đời chương trình Sử dụng cẩn thận tính dẫn đến giao diện thích ứng động theo nhu cầu người dùng đơn giản hóa tương tác Sử dụng không cẩn thận tính tương tự dẫn đến chương trình khó hiểu chí chương trình hoàn toàn không sử dụng Bài viết giới thiệu công nghệ triết lý UI động giúp bạn vượt qua lúc khó khăn xây dựng UI hiệu Bạn thay đổi mã nguồn dựa ứng dụng chương trình giới thiệu (demo) SwingSet2 đảm bảo với JDK Sun (xem Resources); UI ứng dụng sử dụng số đặc tính động dùng điểm khởi đầu tuyệt vời để hiểu chúng Đình tiện ích (widget) Hình thức đơn giản UI động làm xám màu mục hay nút ấn trình đơn chưa sẵn sàng Việc đình widget UI thực theo cách với tất widget; hàm setEnabled() tính lớp Component (Thành phần) Liệt kê cho thấy mã để đình nút: Liệt kê Đình nút button.setEnabled(false); Ngay hành động đơn giản chuyển sang màu xám tùy chọn trình đơn không sử dụng nút hộp thoại liên quan đến thỏa hiệp với người sử dụng Mặc dù nút ấn chuyển sang màu xám thông báo cho người dùng hành động cụ thể thực được, không cho họ biết Điều vấn đề với người dùng, người không hiểu lý (xem Các nguyên tắc chung) Thật dễ dàng, bạn nhìn thấy Câu hỏi bạn nên kích hoạt hay đình nút Một định thiết kế chung đình nút không thích hợp Ví dụ, nhiều chương trình đình nút Save (và mục trình đơn tương ứng bất kỳ) tệp không thay đổi kể từ lần lưu cuối Lời cảnh báo chủ yếu cho việc đình nút nhớ kích hoạt lại chúng thời điểm thích hợp Ví dụ, có bước xác nhận việc nhấn vào nút hoàn thành hành động nó, nút phải kích hoạt việc xác nhận không thành công Điều chỉnh phạm vi Đôi ứng dụng cần điều chỉnh phạm vi số widget, Spinner (quay tròn) Slider (thanh trượt ), cách động Điều phức tạp mong đợi Các Slider, nói cụ thể, có tính thứ cấp dấu thời gian, khoảng cách dấu thời gian nhãn mà chúng cần phải điều chỉnh với phạm vi để tránh bị lỗi nặng Chương trình giới thiệu (demo) SwingSet2 không trực tiếp làm điều này, bạn thay đổi cách gắn ChangeListener cho trượt để thay đổi trượt khác Nhập lớp SliderChangeListener mới, Liệt kê 2: Liệt kê Thay đổi phạm vi trượt class SliderChangeListener implements ChangeListener { JSlider h; SliderChangeListener(JSlider h) { this.h = h; } public void stateChanged(ChangeEvent e) { JSlider js = (JSlider) e.getSource(); int i = js.getValue(); h.setMaximum(i); h.repaint(); } } Khi trượt ngang thứ ba tạo (một trượt demo ban đầu có dấu đánh dấu tất đơn vị ghi nhãn 5, 10 11), SliderChangeListener tạo ra, chuyển qua trượt đối số hàm tạo (constructor) Khi trượt dọc thứ ba (có phạm vi đến100) tạo ra, SliderChangeListener thêm vào người nghe (listener) thay đổi Điều làm việc gần mong đợi: Điều chỉnh trượt dọc thay đổi phạm vi trượt ngang Thật không may, dấu nhãn chẳng làm việc tốt Các nhãn có tối đa năm dấu làm việc tốt miễn phạm vi không lớn, nhãn phụ 11 nhanh chóng vấn đề tính sử dụng, Hình 1: Hình Các nhãn chạy Cập nhật dấu nhãn Giải pháp rõ ràng đơn giản đặt khoảng cách đánh dấu trượt ngang, giá trị tối đa cập nhật, thể Liệt kê 3: Liệt kê Thiết lập khoảng cách đánh dấu // DOES NOT WORK int tickMajor, tickMinor; tickMajor = (i > 5) ? (i / 5) : 1; tickMinor = (tickMajor > 2) ? (tickMajor / 2) : tickMajor; h.setMajorTickSpacing(tickMajor); h.setMinorTickSpacing(tickMinor); h.repaint(); Liệt kê theo thực hiện, không dẫn đến thay đổi cho nhãn vẽ hình Bạn phải thiết lập nhãn cách riêng biệt, sử dụng setLabelTable() Thêm dòng để sửa chữa nó: h.setLabelTable(h.createStandardLabels(tickMajor)); Điều để mặc cho bạn với nhãn lẻ 11 thiết lập ban đầu Tất nhiên, mục đích phải có nhãn đầu mút phải trượt Bạn làm việc cách loại bỏ nhãn cũ (trước thiết lập giá trị tối đa mới) sau thêm nhãn Mã làm việc: Liệt kê Thay nhãn public void stateChanged(ChangeEvent e) { JSlider js = (JSlider) e.getSource(); int i = js.getValue(); // clear old label for top value h.getLabelTable().remove(h.getMaximum()); h.setMaximum(i); int tickMajor, tickMinor; tickMajor = (i > 5) ? (i / 5) : 1; tickMinor = (tickMajor > 2) ? (tickMajor / 2) : tickMajor; h.setMajorTickSpacing(tickMajor); h.setMinorTickSpacing(tickMinor);

Ngày đăng: 02/06/2016, 20:06

Tài liệu cùng người dùng

Tài liệu liên quan