[英]unwanted transparent JFrame background
public void paint(Graphics g){
g.setColor(Color.red);
g.drawString("hello",50,50);
}
框架的背景看起來很奇怪而且透明。 僅當我繪制字符串時才會出現此問題,但是當我繪制矩形或任何其他形狀時,框架看起來不錯。
這是代碼:
import javax.swing.*;
import java.awt.*;
public class B extends JFrame {
public B() {
this.setTitle("programme");
this.setSize(400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
this.setVisible(true);
}
public void paint(Graphics g) {
g.setColor(Color.red);
g.drawString("hello", 50, 50);
}
}
結果是:
感謝您的幫助 。 我找到了答案。 發生問題是因為我沒有在paint方法中將對象(g)傳遞給構造函數
這是整個代碼:
導入java.awt.Color;
導入java.awt.FlowLayout;
導入java.awt.Graphics;
導入javax.swing.JFrame;
B類擴展了JFrame {
public B() {
this.setTitle("programme");
this.setSize(400,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
this.setVisible(true);
}
public void paint(Graphics g) {
super.paint(g);
// I have added the previous line and it solved the problem
g.setColor(Color.red);
g.drawString("hello", 50, 50);
}
}
公共班級主要{
public static void main(String[] args) {
B obj = new B();
}
}
無論如何,謝謝您的幫助。
奇怪,在我這里一切都很好。 嘗試在構造函數中使用:
super("programme");
而是setTitle("programme");
如果不起作用,請添加
setBackground(Color.lightGray);
在構造函數中。
無論如何,當您要繪制String時,應該使用JLabel
類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.