01/10/2018, 09:26

Không hiển thị JScrollPane

Mình đã tạo một scrollpane cho list và đã add vào frame, nhưng khi chạy lại không hiển thị scroll. Các bạn sửa giúp mình với.

import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;

public class Test extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public static void main(String[] args) {
		@SuppressWarnings("unused")
		Test t = new Test();
	}
	
	public Test() {
		this.setSize(300, 170);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setTitle("Test");
		String[] toppings = { "xxx", "xxx", "xxx", "xxx", "xxx", "xxx", "xxx", "xxx", "xxx", 
				"xxx", "xxx", "xxx" };
		JList<String> list = new JList<>(toppings);
		list.setVisibleRowCount(5);
		JScrollPane sc = new JScrollPane(list);
		this.add(sc);
		this.add(list);
		this.setVisible(true);
	}
}
Tynk Huynk viết 11:32 ngày 01/10/2018

this.add(sc);
this.add(list);

Vấn đề là ở câu lệnh đầu tiên, thực chất khi bạn add sc thì đồng thời bạn cũng add luôn list rồi, nguyên nhân bạn đã đăng kí sc với list ở câu lệnh:

JScrollPane sc = new JScrollPane(list);

Tuy nhiên, khi bạn gọi câu lênh thứ hai: add list vào frame (vốn đã add vào lúc trước) thì nó sẽ mặc định coi list chưa có JScrollerPane nào đăng kí -> dẫn đến list ko được hiển thị qua JScrollerPane

Solution: xóa câu lệnh thứ 2

Bài liên quan
0