所以我有一個gui,佈局被設置爲Null,並且我將JLabels放在JButton的頂部,因爲JButtons有圖標並向按鈕添加文本會使按鈕看起來扭曲,所以我使用的是JButton的JLabels ontop。每次當我測試鼠標時,鼠標移過JButton,JLabel就會消失。我該如何解決這個問題,所以JLabels總是出現在JButton之上。如何讓JLabel始終保持在JButton之上?
編輯:它扭曲了按鈕,因此圖標占據了大部分空間,按鈕標籤被按鈕的另一邊切斷。
所以我有一個gui,佈局被設置爲Null,並且我將JLabels放在JButton的頂部,因爲JButtons有圖標並向按鈕添加文本會使按鈕看起來扭曲,所以我使用的是JButton的JLabels ontop。每次當我測試鼠標時,鼠標移過JButton,JLabel就會消失。我該如何解決這個問題,所以JLabels總是出現在JButton之上。如何讓JLabel始終保持在JButton之上?
編輯:它扭曲了按鈕,因此圖標占據了大部分空間,按鈕標籤被按鈕的另一邊切斷。
如果您使用的是JFrame,我認爲您必須是這樣,您可以將標籤添加到位於內容窗格頂部的JLayered窗格。
幾乎沒有任何情況需要使用空佈局。你只需要做一些練習LayoutManagers
你可以做你想做的事情與JLayeredPane。像這樣:
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
public class Test {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.add(jLabelOnJButton());
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
private static JComponent jLabelOnJButton(){
JLayeredPane layers = new JLayeredPane();
JLabel label = new JLabel("label");
JButton button = new JButton("button");
label.setBounds(40, 20, 100, 50);
button.setBounds(20, 20, 150, 75);
layers.add(label, new Integer(2));
layers.add(button, new Integer(1));
return layers;
}
}
這不是我想的一個好的解決方案。只有在沒有更好的解決方案時纔會這樣做。
定義「扭曲」? – JTeagle 2012-03-29 06:50:57
*「所以我有一個gui的佈局設置爲空,」*這是問題所在。 ***使用佈局!*** – 2012-03-29 07:32:33