콘텐츠 창을 투명하게 만들고 일반 어두운 파란색 색조의 파란색 스트립을 만들려고합니다.하지만 contentPane을 투명하게 만드는 과정에서이 스트립을 무딘 모양으로 만듭니다. (coz 그 위에 검은 색이 그려져있다) 우연히.내 작은 스윙 코드로 그림을 수정하는 데 도움이 필요합니다
는 는내가 그것을 어떻게
을 를 해결할 수 있습니다?
class Home extends JFrame
{
int width=GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().width;
int height=GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().height;
public Home()
{
super("WiND");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setUndecorated(true);
setSize(width,height);
setBackground(new Color(0,0,0,0));
setUndecorated(true);
setVisible(true);
setLayout(new FlowLayout());
JPanel p=new JPanel();
p.setBackground(new Color(0x0D70E8));
p.setPreferredSize(new Dimension(width,height/10));
add(p);
}
public void paint(Graphics g)
{
super.paint(g);
Graphics2D g2=(Graphics2D)g;
LinearGradientPaint p=new LinearGradientPaint(0,0,0,height,new float[]{0f,1f},new Color[]{new Color(0.2498f,0.2498f,0.2498f,0.3f),new Color(0.1598f,0.1598f,0.1598f,0.8f)});
g2.setPaint(p);
g2.fillRect(0, 0, width,height);
}
}
(나는 같은 일 a를 그랬어 :
여기
코드입니다 (페인트 방법을 주석하고 strip.This의 변화를 주목하는 것은 내가 최종 결과로 원하는 것입니다) 올해 다시,하지만 지금은 일 년 후에 나는편집
내가로 변경 한) 것을 어떻게했는지 잊어 @ Sage에 따르는 paint() 메소드. 다음 출력을 얻습니다. 청색 스트립 수정. 이제 회색 반투명 배경이 사라졌습니다.
페인트. 이후에 불투명 한 색상을 페인트합니다. – Cruncher
1) 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오.2)'JFrame'과 같은 최상위 컨테이너에 그림을 그리는 대신'paintComponent (Graphics)'메서드에서'JPanel'과'do custom painting을 추가하십시오. 또한 레이아웃 관리자를 돕기 위해 맞춤 구성 요소에 적합한 적절한 크기를 반환하십시오. –
@Cruncher : 어떻게해야합니까? 나는'paint()'가 항상 나중에 호출 될 것이라고 생각한다. –