2015-05-23 3 views
0

Здравствуйте, я хочу создать программу, которая принимает информацию и отображает ее по изображению в настраиваемом месте или точках, которые я установил для него. Я пробовал разные вещи, но они не работают или не отображают рамку. В принципе, мне интересно, как добавить текст поверх изображения. Благодаря!Как добавить текст поверх изображения в JFrame?

/* 
* This program will ask information to be displayed in four different pieces of documentation. 
*/ 

package choice.assignment; 

import java.io.IOException; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import static javax.swing.JFrame.EXIT_ON_CLOSE; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 

/* 
* @author Talha 
*/ 

public class ChoiceAssignment extends JFrame { 

    public static void main(String[] args) { 
     String option = JOptionPane.showInputDialog("Enter the type of document you want to receive:"); 
     if ("passport".equals(option)) { 
      String country = JOptionPane.showInputDialog(null, "Which country's passport would you like?"); 
      String name = JOptionPane.showInputDialog(null, "What is you name?"); 
      String countryOfOrigin = JOptionPane.showInputDialog(null, "What is you country of origin?"); 
      String dateOfBirth = JOptionPane.showInputDialog(null, "What is your date of birth?"); 
      new ChoiceAssignment().getPassport(option, country, name, countryOfOrigin, dateOfBirth); 
     } 
    } 

    public void getPassport(String option, String country, String name, String countryOfOrigin, String dateOfBirth) { 
     if ("usa".equals(country)) { 
      JFrame frame = new JFrame(); 
      JPanel panel = new JPanel(); 
      JLabel label = new JLabel(); 
      frame.setTitle("USA Passport"); 
      frame.setSize(300, 400); 
      frame.setVisible(true); 
      frame.setDefaultCloseOperation(EXIT_ON_CLOSE); 
      label.setIcon(new ImageIcon("uspassport.jpg")); 
      panel.add(label); 
      frame.add(panel); 
      frame.validate(); 
    } 
} 

ответ

2

пользовательского места или точки, которые я установить для него.

Вы можете добавить JLabel на ярлык, содержащий ваше изображение. Поскольку вы хотите случайно разместить текст, вам нужно будет самостоятельно управлять размером и расположением текста:

JLabel text = new JLabel("Some text"); 
text.setSize(label.getPreferredSize()); 
text.setLocation(...); 
label.add(text); 
+0

Ваш комментарий не имеет смысла. Swing нарисует ярлык своим значком, а затем все дочерние компоненты, добавленные в ярлык. Обратите внимание, что мой код использует две метки? Если у вас есть проблемы, обновите свой код с помощью надлежащего [SSCCE] (http://sscce.org/), который демонстрирует проблему. Это для вашего вопроса вам нужен JFrame, JLabel с изображением и JLabel с текстом. Добавьте метку с текстом на ярлык с изображением, как показано выше. Затем добавьте метку с изображением в рамку. «SSCCE» будет содержать около 10-15 строк кода для проверки концепции – camickr

Смежные вопросы