2017-10-03 10 views
0

안녕하세요. :) 내 주먹 포스트입니다. 바로 들어갈 수 있습니다 : 내 문제 : 저는 계산기에 JButton을 추가 한 것보다 계산기를 배경 이미지로 넣었습니다. 내 문제 (들) : 나는 계산기를 신속하게 표시되는 프로그램을 시작할 때JButton이 이미지 뒤쪽에 표시됩니다.

, 다음이 사라지고 난 창 크기를 조정하면 버튼이 주심, 계산기가 나타나 버튼 사라져

방법 이 일을 할 수 있을까요?

Heres는 내 코드 : 사전에

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

public class Calculator extends JFrame { 
    private ImageIcon image; 
    private JLabel label; 


Calculator() { 


    image = new ImageIcon(getClass().getResource("TStiny.png")); 
    label = new JLabel(image); 
    add(label); 
} 

public static void main (String args[]) { 

    Calculator gui = new Calculator(); 
    gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    gui.setTitle("Texas Instruments TI-30XIIS"); 
    gui.pack(); 
    gui.setVisible(true); 

    JPanel panel = new JPanel(); 
    gui.add(panel); 

    JButton button7 = new JButton(); 
    button7.setIcon(new ImageIcon(Calculator.class.getResource("button_7.png"))); 
    button7.setVisible(true); 
    button7.setBorderPainted(false); 
    button7.setBounds(90, 445, 45, 35); 
    panel.add(button7); 

} 

감사합니다! :)

답변

0

구성 요소를 추가 할 레이아웃과 최종 위치를 지정해야합니다. JFrame은 기본적으로 BorderLayout을 사용합니다.

기본 동작을 사용하려는 경우 구성 요소를 배치 할 위치를 넣어해야하는 또 다른 옵션은 위치를 지정하지 않는 레이아웃을 지정하는 것입니다

public class Calculator extends JFrame { 
    private ImageIcon image; 
    private JLabel label; 


    Calculator() { 
     image = new ImageIcon(getClass().getResource("TStiny.png")); 
     label = new JLabel(image); 
     add(label, BorderLayout.LINE_START); 
    } 

    public static void main(String args[]) { 

     Calculator gui = new Calculator(); 
     gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     gui.setTitle("Texas Instruments TI-30XIIS"); 
     gui.pack(); 
     gui.setVisible(true); 

     JPanel panel = new JPanel(); 
     gui.add(panel, BorderLayout.LINE_END); 

     JButton button7 = new JButton(); 
     button7.setIcon(new ImageIcon(Calculator.class.getResource("button_7.png"))); 
     button7.setVisible(true); 
     button7.setBorderPainted(false); 
     button7.setBounds(90, 445, 45, 35); 
     panel.add(button7); 

    } 
} 

- 같은 FlowLayout :

public class Calculator extends JFrame { 
    private ImageIcon image; 
    private JLabel label; 


    Calculator() { 
     setLayout(new FlowLayout()); 

     image = new ImageIcon(getClass().getResource("TStiny.png")); 
     label = new JLabel(image); 
     add(label); 
    } 

    public static void main(String args[]) { 

     Calculator gui = new Calculator(); 
     gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     gui.setTitle("Texas Instruments TI-30XIIS"); 
     gui.pack(); 
     gui.setVisible(true); 

     JPanel panel = new JPanel(); 
     gui.add(panel); 

     JButton button7 = new JButton(); 
     button7.setIcon(new ImageIcon(Calculator.class.getResource("button_7.png"))); 
     button7.setVisible(true); 
     button7.setBorderPainted(false); 
     button7.setBounds(90, 445, 45, 35); 
     panel.add(button7); 

    } 
}