我想創建一個jframe並設置一個背景顏色,但也放入一個拉繩。這似乎是每當我使用.add時,文本出現,但不是背景。如果沒有.add,背景會更改,但不會顯示文本。 `如何設置背景顏色和drawString而不取消Java中的其他顏色?
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test extends JPanel{
public void paint(Graphics g){
Graphics2D g2d=(Graphics2D)g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
Font font = new Font("Serif", Font.PLAIN, 500);
g.setFont(font);
g.setColor(Color.red);
g.drawString("Hello", 300, 900);
}public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame jf=new JFrame();
jf.getContentPane().setBackground(Color.YELLOW);
jf.getContentPane().add(new Test());
jf.setSize(1920,1024);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
`
在Test類上調用'setOpaque(false)'t o使其透明 – MadProgrammer
不要在面板上調用setOpaque(false)。沒有理由這樣做,它會降低繪畫的效率。只需設置面板的背景並通過重寫'paintComponent(...)'並調用'super.paintComponent(...)'在面板上進行適當的繪製。 – camickr
閱讀[自定義繪畫]的Swing教程部分(http://docs.oracle.com/javase/tutorial/uiswing/painting/index.html)以獲取更多信息和可下載的工作示例。演示代碼將有一個更好的程序結構供您遵循。該教程還包含其他基本的Swing信息和示例。 – camickr