簡體   English   中英

不需要的透明JFrame背景

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM