JPanel
을 Oracle Forms Container (기반 AWT Container
)에 추가 할 때 심각한 문제가 있습니다. JPanel
을 먼저 추가 한 후 VTextFields
(Oracle Forms 텍스트 필드)을 추가합니다. 보시다시피jpanel 다른 구성 요소와 겹침
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import oracle.ewt.scrolling.scrollBox.ScrollBox;
import oracle.forms.ui.DrawnPanel;
import oracle.forms.ui.FScrollBox;
import oracle.forms.ui.VTextField;
public class OverlapTest {
int w = 800;
int h= 700;
public OverlapTest() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(w, h);
DrawnPanel main = new DrawnPanel();
main.setLayout(null);
main.setBounds(0, 0, w, h);
main.setVisible(true);
VTextField t1 = new VTextField();
t1.setBounds(100, 100, 130, 22);
VTextField t2 = new VTextField();
t2.setBounds(100, 150, 130, 22);
VTextField t3 = new VTextField();
t3.setBounds(100, 200, 130, 22);
final JPanel draw = new JPanel(){
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.red);
g2.fillRect(0, 100, 130, 200);
g2.dispose();
}
@Override
public void update(Graphics g) {
paint(g);
}
};
draw.setOpaque(false);
draw.setBounds(0, 0, w, h);
main.add(draw);
main.add(t1);
main.add(t2);
main.add(t3);
ScrollBox sBox = new ScrollBox(main);
sBox.setBounds(0, 0, w, h);
sBox.setVScrollInsets(1, 100);
oracle.forms.ui.FScrollBox fBox = new FScrollBox(sBox, 0, 0);
fBox.setVisible(true);
fBox.setBounds(0, 0, w - 50, h - 50);
main.setComponentZOrder(draw, 3);
main.setComponentZOrder(t1, 0);
main.setComponentZOrder(t2, 1);
main.setComponentZOrder(t3, 2);
f.add(fBox);
f.setVisible(true);
}
public static void main(String[] args) {
OverlapTest test = new OverlapTest();
}
}
, 내 요구 사항은 내 실제 응용 프로그램에서 나는 모든 구성 요소의 끝에서 JPanel
를 추가 할 수 없기 때문에, 즉 I setComponentZorde
R 후, 그 첫 번째 JPanel
추가, 그래서 나는이 것을 따랐 는가 방법.
그러나 현재 하나의 문제가 있습니다. 다른 모든 구성 요소는 JPanel
과 겹칩니다. 그러나 JPanel
(빨간색 사각형)의 배경은 항상 다른 구성 요소를 숨 깁니다.
이
은 이미지입니다 :나도 몰라,하지만 난 JTextField
를 사용할 때, 모든 것이 OK입니다. frmall.jar
에서 Oracle Forms의 구성 요소를 사용하고 있습니다. http://www.megafileupload.com/en/file/329640/frmall-jar.html 에서 frmall.jar
을 다운로드 할 수 있습니다. 빨간색 사각형을 다른 구성 요소와 겹치게 만들 수있는 해결책이 있습니까?
제 영어는 유감 스럽습니다.
미리 감사드립니다.
는 지금은 양식 DrawnPanel에 의해 JPanel을 대체하려고 노력하지만, 여전히 문제가 있습니다
FormCanvas form = new FormCanvas(){
@Override
public void paint(Graphics g, Dimension paramDimension,
Rectangle paramRectangle) {
// TODO Auto-generated method stub
super.paint(g, paramDimension, paramRectangle);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.red);
g2.fillRect(0, 100, 200, 200);
g2.dispose();
}
};
DrawnPanel draw = new DrawnPanel();
draw.setPainter(form);
draw.setVisible(true);
는 이제 모든 내 구성 요소가 양식이 구성 요소입니다,하지만 난 여전히이 문제를 얻을
와우, 8Kb PNG로 줄이는 500KB + 비트 맵! 사람들이 비트 맵 형식을 사용하지 않는 것은 당연합니다. 스레드에 직접 작은 PNG를 편집했습니다. 멋진 스크린 샷을 만드는 방법에 대한 팁은 [게시물을 설명하기 위해 스크린 샷을 만드는 방법은 무엇입니까?] (http://meta.stackexchange.com/questions/99734/how-do-i-create-a-screenshot-to)를 참조하십시오. -illustrate-a-post) –
또한 성인 중심 광고를 포함하지 않는 덜 유치한 호스팅 사이트를 고려하십시오. – trashgod