Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Прозрачное окно JFrame


Автор: America 13.1.2007, 02:19
Привет поклонникам графити!   smile  


Не тыкнете мне на причину почему у меня фон прозрачный.. я вот сделал фон чёрным как написано в книжке..а он всё равно прозрачныйsmile 
Код


import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;





public class Besie extends JFrame{
int i=150;
private Color c,c2,c3,bc;


public void paint(Graphics g){
 g.setColor(Color.blue);    
 g.drawLine(0,i-100,2*i,4*i);
        }

Besie(){ bc=Color.gray;
       
          setBackground(bc);
         
       }
//==========================================================
public static void main( String[] args ) {
        JFrame f=new Besie();
        f.setSize(600+150,600);
        f.setVisible(true);    

       }
}//end Besie:)


http://slil.ru/23735141

Автор: hamsterKSU 13.1.2007, 02:36
зачем переопределять paint(), там можно проще, 
Код

this.getContentPane().setBackground(Color.BLACK);

Автор: America 13.1.2007, 03:01
Спасибо теперь фон стал чёрным. Но появилась другая проблема, 
линии не видно..  smile smile  smile 

Код

import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;





public class Besie extends JFrame{
int i=150;
private Color c,c2,c3,bc;


public void paint(Graphics g){
    this.getContentPane().setBackground(Color.BLACK);    
    g.drawLine(0,i-100,2*i,4*i);
        }

Besie(){ bc=Color.gray;
         
       }
//==========================================================
public static void main( String[] args ) {
        JFrame f=new Besie();
        f.setSize(600+150,600);
        f.setVisible(true);    

       }
}//end Besie:)


Автор: hamsterKSU 13.1.2007, 11:58
воервых нех каждый раз в pint устанавливать background?если только тебе не надо его менять каждый раз при перерисовке.
Вот так работает. Я еше гдето на форуме видел что рекомендуют переопределять не сам paint() а только paintComponent(); посмотри реализацию paint() для контейнеров, там не только рисуется сам компонент но и все его чилды.
Код

public Base() {
        super();
        this.getContentPane().setBackground(Color.BLACK);
        // TODO Auto-generated constructor stub
    }

    


    public void paint(Graphics g){
        super.paint(g);
        g.setColor(Color.RED);
        g.drawLine(0,30,200,200);
    }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)