我想開發一個Java Applet,它顯示Sorting的可視化。所以我寫了這樣的代碼......在Java Applet中重寫結果
public class SortNumbersGUI extends JApplet {
private static final long serialVersionUID = 1L;
List<Integer> randomList;
JLabel numberLabel;
JButton sortButton;
@Override
public void init() {
randomList = MyRandom.myRandom();
setSize(400, 400);
setLayout(new FlowLayout());
sortButton = new JButton("Sort");
sortButton.setBounds(50, 0, 50, 10);
sortButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Collections.sort(randomList);
removeAll();
repaint();
}
});
this.add(sortButton);
super.init();
}
@Override
public void paint(Graphics g) {
int y = 20;
for (Integer i : randomList) {
g.drawString(i.toString(), 0, y + 10);
g.fillRect(20, y, (i * 10)/10, 5);
y = y + 20;
}
}
}
但是,我在這裏面臨兩個問題..
排序按鈕,這是一個JButton並不總是可見。當我將鼠標光標放在該排序按鈕的位置上時,只有它出現。
當我調用repaint()方法時,結果重寫。隨着波紋管圖像
Result Image(因爲我沒有名聲,我粘貼圖片鏈接。)
請幫我解決這個問題。 先謝謝您。
*「你overridding漆代替paintComponent「*與」JComponent「不同,像JFrame和JApplet這樣的頂級容器沒有'paintComponent(Graphics)'方法。 (其中一種原因是在'JPanel'中進行自定義繪畫更好,然後將面板添加到框架或小程序中。) – 2014-12-05 00:32:02