DR_Demons
@DR_Demons

В чем секрет прозрачность в Java Swing?

Доброво Времени! Я изучаю java и сейчас в частности swing. Наткнулся на просторах интернета на такой
пример
import javax.swing.JFrame;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;

import com.sun.awt.AWTUtilities;
	 
	public class TransparentFrame extends JFrame {
	     public TransparentFrame() {
	         setTitle("Transparent Frame");
	         setSize(400,400);
	         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	         JSlider slider = new JSlider(JSlider.HORIZONTAL, 10, 100, 50);
	         
	         add(slider);
	         setVisible(true);
	     }
	     public static void main(String[] args) {
	    	 
	        new TransparentFrame();
	          
	         
	     }
	     
	     public void stateChanged(ChangeEvent e) {
	 	      JSlider slider = (JSlider) e.getSource();
	 	      if(!slider.getValueIsAdjusting()){
	 	    	 AWTUtilities.setWindowOpacity(TransparentFrame.this, slider.getValue()/100f);
	 	      }
	 	}
	}

По задумке автора должно получиться вот
так
tr1.png


но по факту получается
так
h_1398981500_6711975_2341fabcc5.png


Тоесть прозрачность не работает. Подскажите, в чем ошибка и как реализовать правильно?
За ранее Спасибо!
  • Вопрос задан
  • 3532 просмотра
Пригласить эксперта
Ответы на вопрос 1
Попробуйте переместить код из метода stateChanged в слушатель слайдера. Т.е., перед
add(slider)напишите
slider.addActionListener(new ActionListener()
{
    @Override
    public void ActionPerformed(ActionEvent e)
    {
//Сюда
    }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы