2010-09-20 42 views
5

Tôi có một JSlider trong GUI của tôi mà đi từ 0 đến 100. Vì lý do nào đó, có văn bản trên vị trí thanh trượt hiển thị giá trị hiện tại của thanh trượt và nó đi theo thanh trượt của tôi. Tức là, nếu tôi di chuyển thanh trượt của mình nửa chừng, "50" xuất hiện phía trên thanh trượt của tôi hiện đang ở đâu. Tuy nhiên, tôi không thể hiểu được trường văn bản đó được gọi là gì, tất cả những gì tôi biết là một phần của thanh trượt.Làm thế nào để loại bỏ văn bản trên JSlider

Tôi muốn xóa hoặc có thể thay đổi nó thành thứ gì khác, tôi sẽ làm như thế nào?

+0

UI gì được thanh trượt sử dụng? 'slider.getUIClassID()'. Giao diện người dùng mặc định của tôi không hiển thị những gì bạn đang nói đến. Bạn có thể phải cung cấp giao diện người dùng của riêng bạn hoặc ghi đè/phân lớp con hiện có. –

+0

Vâng, kỳ lạ của nó, từ những gì tôi có thể nói với hầu hết các thanh trượt không có nó, đó là lý do tại sao nó khó khăn và tối nghĩa để tìm ra. Slider.getUIClassID() của tôi trả về "SliderUI" –

+0

Xin lỗi, hãy thử in ra 'slider.getUI(). GetClass()'. Lỗi của tôi. –

Trả lời

4

Tôi sẽ chỉ nhận xét về câu trả lời của Etaoin, nhưng tôi chưa có danh tiếng cho nó.

Dù sao đi nữa, hãy gọi này trước khi instantiating JSlider:

UIManager.put("Slider.paintValue", false); 

Note thủ đô 'V' trong paintValue.

Bên cạnh đó, để in tất cả trong những điều thú vị mà hiện đang được thiết lập bởi UIManager của bạn, nhập mã này bất cứ nơi nào sau khi UIManager đã được khởi tạo:

Iterator<Entry<Object, Object>> it = UIManager.getDefaults().entrySet().iterator(); 
while(it.hasNext()) 
    System.out.println(it.next()); 
+0

Xem thêm [bài viết và tiện ích này] (http://tips4java.wordpress.com/2008/10/09/uimanager-defaults/). – trashgod

-1

Như tôi thấy có một phương pháp setLabelTable trong JSlider với tham số Từ điển. Tôi đã không sử dụng nó nhưng tôi đoán rằng nếu bạn đặt nó vào một từ điển trống (hoặc nhãn trống cho mọi giá trị có thể) thì sẽ không có nhãn nào xuất hiện.

Giải pháp tốt hơn là việc sử dụng setPaintLabels với giá trị false.

+1

không, đã thử nó, labelTable được sử dụng để đánh dấu các nhãn cho thanh trượt (các nhãn nằm bên dưới một thanh trượt), nó không không ảnh hưởng đến giá trị trên thanh trượt. –

+0

Tôi nghĩ rằng những người phải làm với các dấu tick. –

+0

nhận xét tiếp theo, setPaintLabels đã mặc định là false và nó ảnh hưởng đến các nhãn mà bạn đã đặt với setLableTable, đó KHÔNG phải là giá trị của thanh trượt. Vì vậy, nó cũng không hoạt động. Giống như Mark cho biết, đó là những nhãn hiệu đánh dấu, không phải là giá trị thanh trượt mà tôi đang nói đến. –

0

Bạn có nghĩa là chú giải công cụ không? Nó có phải là một hộp nhỏ xuất hiện trên thanh trượt điều khiển và đi theo con chuột của bạn xung quanh nếu bạn lấy thanh trượt? Nếu trường hợp này xảy ra, bạn có thể vô hiệu hóa nó chỉ bằng cách gọi setToolTipText(null) hoặc ghi đè văn bản với setToolTipText("My Text").

3

Điều này làm phiền tôi về dự án một lần và tôi đã tìm thấy cách giải quyết sau. Gọi đây là một lần trước khi instantiating JSlider của bạn - tôi đặt nó trong một khối static trong phân lớp JPanel tôi:

UIManager.put("Slider.paintValue", false); 

Điều đó sẽ chăm sóc nó.

Các vấn đề liên quan