我想添加一個半透明的jPanel。但是放置在jPanel中的其他組件(例如按鈕和標籤)應該以100%不透明度顯示。我使用netbeans來設計GUI。通常,我將拖放組件拖放到調色板中以設計GUI(我不編碼它們)。我無法在屬性窗口中看到任何屬性來實現此目的。請幫幫我。由於我對Java很新,請給我一個詳細的答案。提前致謝。如何使jPanel半透明?
3
A
回答
7
您可以使用 JPanel.setBackground(Color bg); 使面板半透明。顏色的屬性是什麼。 您可以使用alpha值構造顏色來設置顏色的透明度。
panel.setBackground(new Color(213,134,145,123));
最後一個參數是實際的alpha值,您可以調整它以查看效果。
下面是代碼:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class PanelTest {
public static void main(String[] args) {
Runnable runnable = new Runnable() {
@Override
public void run() {
PanelTest test = new PanelTest();
test.createUI();
}
};
SwingUtilities.invokeLater(runnable);
}
public void createUI(){
JFrame frame = new JFrame("Panel Test");
JPanel panel = new JPanel();
panel.setBackground(new Color(213, 134, 145, 123));
JButton button = new JButton("I am a button");
JLabel label = new JLabel("I am a label");
label.setFont(new Font("Arial", Font.BOLD, 15));
JTextField textField = new JTextField();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(button);
panel.add(Box.createVerticalStrut(20));
panel.add(label);
panel.add(Box.createVerticalStrut(20));
panel.add(textField);
panel.setBorder(BorderFactory.createEmptyBorder(30, 30, 30, 30));
BottomPanel buttomPanel = new BottomPanel();
buttomPanel.add(panel);
frame.add(buttomPanel,BorderLayout.CENTER);
frame.setResizable(false);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
@SuppressWarnings("serial")
class BottomPanel extends JPanel{
@Override
protected void paintComponent(Graphics g) {
for (int y = 0; y < 200; y = y + 20) {
g.drawString("I am the string on the bottom", 5, y);
}
}
}
}
這裏是有效果的,希望它可以幫助你。
1
您可以簡單地創建使用拖放您的JPanel,因爲你總是這樣,然後改變面板的顏色,使之透明或半透明的,你可以使用此代碼:
panel.setBackground(new Color(0.0f, 0.0f, 0.0f, 0.5f));
您可以通過更改Color構造函數的前三個參數(它們代表RGB)來更改顏色,並且可以通過更改第四個參數(即顏色的Alpha值)來更改透明度。
相關問題
- 1. 如何使JTextField半透明
- 2. 如何製作JPanel透明?
- 3. 使UINavigationBar半透明
- 4. JPanel中的內容如何變得半透明?
- 5. Winforms半透明PNG半透明PNG
- 6. QML:如何創建半透明/半透明的WebView元素?
- 7. 如何給QDialog半透明?
- 8. 透明JPanel
- 9. Java:MouseEvent透明JPanel
- 10. OpenGL的透明/半透明
- 11. 從JPanel刪除透明JPanel
- 12. 如何使視圖出現半透明
- 13. 如何使表單背景半透明?
- 14. GLSurfaceView - 如何使半透明背景
- 15. 你如何使UISearchBar半透明?
- 16. 如何使佈局半透明?
- 17. 如何使字體與Irrlicht半透明?
- 18. 如何使用wxpython創建半透明/透明矩形?
- 19. 半透明AppWidget?
- 20. SherlockActionBar半透明
- 21. 半透明NSView
- 22. 使用半透明UINavigationBars
- 23. 使背景半透明
- 24. 圖形不會透明透明JPanel
- 25. 如何讓java JPanel和graphics2d透明?
- 26. 如何通過透明JPanel添加JComboBox?
- 27. CSS半透明框
- 28. 半透明光標
- 29. 半透明的seekbar
- 30. JButton的不透明度/半透明度?
贊[this](http://stackoverflow.com/a/2166500/230513)? – trashgod