2010-01-31 29 views
13

Tôi đang tạo GUI (sử dụng xoay) cho một khung chơi poker và cần một số loại thanh trượt để cho phép người chơi chọn kích thước đặt cược. Tuy nhiên, Swing JSlider chỉ hoạt động với các giá trị int trong khi tôi cần một cái gì đó có thể hỗ trợ tăng gấp đôi cho 1 dấu thập phân. Có bất kỳ thư viện nào tôi có thể sử dụng hoặc các thủ thuật với JSlider không?JSlider cho nhân đôi

+0

liên quan http://stackoverflow.com/questions/1548606/java-link-jslider-and-jtextfield-for-float-value –

Trả lời

13

Bạn có thể nhân giá trị bằng 10

EDIT

Bạn có thể thay đổi các nhãn hiển thị như sau:

Hashtable labelTable = new Hashtable(); 
labelTable.put(new Integer(0), new JLabel("0.0")); 
labelTable.put(new Integer(5), new JLabel("0.5")); 
labelTable.put(new Integer(10), new JLabel("1.0")); 
framesPerSecond.setLabelTable(labelTable); 
+0

làm cách nào để hiển thị các giá trị trên các dấu tick là tăng gấp đôi – Aly

+0

Bạn có thể sử dụng setLabelTable để thay đổi thành phần (JLabels) được sử dụng cho các giá trị được hiển thị. –

+0

Tôi quên mất điều đó - xóa bài đăng của tôi có lợi cho giải pháp đó. – aperkins

7

Một lừa bạn có thể sử dụng với JSlider là sử dụng các đơn vị tính bằng xu. Vì vậy, nếu bạn muốn người dùng chọn một số tiền từ 1 đến 10 đô la bạn thực sự đặt JSlider thành phạm vi từ 100 đến 1000. Sau đó, bạn chỉ cần chuyển đổi giá trị thành đô la và xu khi người dùng chọn giá trị.

Sau đó, bạn có thể sử dụng Từ điển giá trị để chỉ định nhãn nào được hiển thị ở bất kỳ giá trị nào trên thanh trượt. Sử dụng phương pháp setLabelTable() cho việc này.

+0

Điều gì về tình huống mà số lượng tối thiểu phải là một đôi, cho phép nói 5.5, tôi sẽ làm cho JLabel đọc 5.5 và ánh xạ số nguyên 5 cho JLabel này. Nhưng khi tôi gọi JSlider.getValue() tôi sẽ nhận được 5, chứ không phải 5.5. Bất kỳ ý tưởng về cách đối phó với điều này? – Aly

+0

Giá trị tối thiểu trong trường hợp này là 550. Bạn lập bản đồ này đến 5.50 để hiển thị. Khi bạn nhận được giá trị mà người dùng đã chọn, bạn chỉ cần chia cho 100 để nhận được 5,5. –

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