JPanel의 구성 요소 표시와 관련하여 혼동 스럽습니다. 다음과 같이 내가 0.8f의 투명도와 사용자 정의 인 JPanel를 작성하는 경우JPanel에서 내용이 반투명하게 만드는 방법은 무엇입니까?
는 가정 -
JPanel panel=new JPanel(){
@Override
public void paint(Graphics g)
{
super.paint(g);
BufferedImage img=(BufferedImage)createImage(getWidth(),getHeight());
Graphics2D g2=(Graphics2D) g.create();
g2.setComposite(AlphaComposite.SrcOver.derive(0.8f));
g2.drawImage(img,0,0,null);
}
@Override
public Dimension getPreferredSize()
{
return new Dimension(300,300);
}
};
가 지금은 프레임의 contentPane로 설정합니다.
frame.setContentPane(panel);
이제 버튼을 추가합니다.
frame.add(new JButton("Click Here"));
frame.add(new JButton("Click Here"));
frame.add(new JButton("Click Here"));
frame.add(new JButton("Click Here"));
1) 다음 JPanel의 계층화 하나이고 I는 오버라이드 때 먼저 반투명 이미지 그려진 I는? 반투명 버튼을 얻는 이유는 출력에서의 paint
있어서 다음 버튼을 첨가하고, 버튼이 반투명하지 않아야 그들은 그것을 극복해야한다.
2) 또한 4 개의 버튼 중 2 개만 반투명합니다. 왜 그런 극단성이 있습니까?
3)이 4 개의 버튼을 추가하기 전에 표를 추가하면 모든 것이 반투명하게됩니다. 왜요? 내가 JPanel에 대한 paintComponent(Graphics g)
를 사용하는 경우
Object[] names = new Object[] {
"Title", "Artist", "Album"
};
String[][] data = new String[][] {
{ "Los Angeles", "Sugarcult", "Lights Out" },
{ "Do It Alone", "Sugarcult", "Lights Out" },
{ "Made a Mistake", "Sugarcult", "Lights Out" },
{ "Kiss You Better", "Maximo Park", "A Certain Trigger" },
{ "All Over the Shop", "Maximo Park", "A Certain Trigger" },
{ "Going Missing", "Maximo Park", "A Certain Trigger" }
};
JTable table = new JTable(data, names);
frame.add(table);
4) 아무 것도 내가 테이블을 추가하거나하지 않거나 많은 버튼 added.Why 여부, 반투명입니까?
(응용 프로그램을 실행할 때 즉각적인 출력을 요구합니다. 마우스를 해당 단추 위로 굴리거나 테이블의 행을 클릭하면 불투명 해집니다. 스윙의 페인팅 메커니즘 때문입니다.)
1) '인 JPanel 패널 = 새로운 JPanel의() { @Override 공개 무효 페인트 (그래픽 g) { 는, super.paint (g)은,''되어야 JPanel의 패널 = 새로운 JPanel의() { @Override public void paintComponent (Graphics g) { super.paintComponent (g);'2) 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. –
또한, 생성 한'Graphics' 객체를'dispose()'하는 것을 잊지 마십시오. –
@AndrewThompson : 업데이트 된 질문을 참조하십시오. 마지막 시점 4 –