2014-09-10 3 views
0

특정 문자를 입력하여 새 프레임을 작성하는 방법을 알고 싶다면 Jbutton을 클릭하면 해당 문자의 모든 정보 (예 : 그림 또는 텍스트)가 나타납니다.JButton과 JTextField의 연결?

예를 들어 단어 "개"를 입력하면 개 그림과 그에 대한 정보가 새 창에 나타납니다. 데이터베이스없이 이것이 가능합니까?

가능한 경우 데이터베이스없이 수행하고 싶습니다.

여기 내 코드입니다 :

import java.awt.FlowLayout; 
import java.awt.BorderLayout; 
import java.awt.Font; 

import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 

import javax.swing.JOptionPane; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.SwingUtilities; 
import javax.swing.JTextField; 
import javax.swing.JButton; 
import javax.swing.BorderFactory; 
import javax.swing.JOptionPane; 

//Bago 
import java.awt.GridBagLayout; // Para mahatihati yung panel 
import java.awt.GridBagConstraints; // para customize yung pagkahati ng panel 

class ProgDraftMain { 

public static void main(String[] args) { 
    SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      ProgDraft gui = new ProgDraft(); 
      gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      gui.setResizable(true); 
      gui.pack(); 

      gui.setVisible(true); 
     } 
    }); 
} 
} 

class ProgDraft extends JFrame { 

private ImageIcon image1; 
private JLabel label1; 
private JTextField textField1; 
private JButton butones; 
private JTextField textField; 

ProgDraft() { 


    JPanel mainPanel = new JPanel(new BorderLayout()); 


    JLabel title = new JLabel("Dog Check", JLabel.CENTER); 
    Font font = new Font("Gigi", Font.BOLD, 50); 
    title.setFont(font); 
    mainPanel.add(title, BorderLayout.NORTH); 


    String text = "Dogs" + "<br>" 
      + "Cute dogs are everywhere" + "<br>" + "<br>" 
      + "Take care and stay safe!" + "<br>" 
      + "I love my dogs" + "<br>" + "<br>" + "<br>" 
      + "Please help!"; 
    JLabel dog = new JLabel("<html><div style=\"text-align: center;\">" + text + "</html>"); 
    dog.setHorizontalAlignment(JLabel.CENTER); 
    mainPanel.add(dog); 

    ImageIcon pics = new ImageIcon(getClass().getResource("Capture.png")); 

    JLabel logo = new JLabel(pics); 
    logo.setHorizontalAlignment(JLabel.CENTER); 
    logo.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 0)); 
    logo.setToolTipText("PIcture."); 




    JPanel iconFieldPanel = new JPanel(); 
    iconFieldPanel.setLayout(new GridBagLayout()); 


    GridBagConstraints gc = new GridBagConstraints(); 



    gc.anchor = GridBagConstraints.CENTER; // Saan ikakabit yung component 
    gc.weightx = 0.5; // (left and right)Space between sa edge nung panel at component 
    gc.weighty = 0.5; // (top and bottom)^ 
    gc.gridx = 0; //saang cell x-axis 
    gc.gridy = 0; //^ y axis naman 


    iconFieldPanel.add(logo, gc); 



    gc.gridy = 1; 
    JLabel titleBut = new JLabel("Enter Dog Code:"); 
    iconFieldPanel.add(titleBut, gc);  


    gc.gridy = 2; 
    textField = new JTextField(10); 
    iconFieldPanel.add(textField, gc); 


    JButton buton1 = new JButton("OK");   

    gc.gridy = 3; 

    iconFieldPanel.add(buton1, gc); 





    JPanel iconFieldWrapper = new JPanel(); 
    iconFieldWrapper.add(iconFieldPanel); 



    mainPanel.add(iconFieldWrapper, BorderLayout.SOUTH); // add icon and field to bottom 


    getContentPane().add(mainPanel); 



} 



} 
+0

아마'Dog' 객체의'List' 각각'Dog' 객체 개 코드와 JFrame의이 포함되어 있습니다. –

+0

수업을들을 수 있다고 생각합니다. InfoFrame의 경우 버튼을 클릭하여 생성자를 String 매개 변수 (예 : new InfoFrame ("Dog"))를 클릭하고 불러올 이미지/설명을 결정하거나 이미지/설명을 매개 변수로 전달하십시오. 하지만 최선의 방법은 아니라고 확신합니다. – DeiAndrei

답변

0

,

import java.awt.Button; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFormattedTextField; 
import javax.swing.JFrame; 
import javax.swing.JOptionPane; 
import javax.swing.JTextField; 

public class PopupExample implements ActionListener 
{ 
    JFrame frame; 
    JTextField t1; 
    JButton btn; 
    public PopupExample() 
    { 
     frame=new JFrame(); 
     frame.setLayout(null); 
     frame.setSize(700,700); 
     frame. setLocation(300,10); 

     t1=new JTextField(); 
     t1.setBounds(82,10,100,20); 

     frame.add(t1); 

     btn=new JButton("SUBMIT"); 
     btn.setBounds(200,10,100,20); 
     btn.addActionListener(this); 
     frame.add(btn); 
     frame.setVisible(true); 
    } 

    public static void main(String ar[]) 
    { 
     PopupExample obj=new PopupExample(); 
    } 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     if(e.getSource()==btn) 
     { 
      String input=t1.getText(); 
      if(input.equals("dog")) 
      { 
       JOptionPane.showMessageDialog(null,"my dog"); 
       //you can popup new frame here about dog 
       //create the object of new class (which contain dog details)here. 
       //you can use show() 
      } 
     } 
    } 
} 
+0

안녕하세요. 이것이 내가 찾고 있었고 찾고 싶어했던 결과물/코드입니다. 나는 너무 행복해! 정말 고맙습니다! :-) 대단히! 고맙습니다! 나는 단지 그것에 이미지를 넣으려고 노력할 것이다. 코드를 가지고 놀아 라. –

+0

null 레이아웃을 권장하지 마십시오. – trashgod

1

데이터베이스에없는 프로그램을 작성하는 것이 가능하지만, 데이터를 저장하는 방법에 대해 생각해야합니다. 데이타베이스 관심사를 위해, 나는이 개의 부호 그리고 그림을 저장하는 방법 의미한다 것을 짐작한다.

0

예, 우리는 데이터베이스없이,하지만 당신은 하드 조건

예에 따라 같은 코딩 즉, 다른 논리를 작성할 필요가 있음을 수행 할 수 있습니다 텍스트 필드

String a=xx.getText().toString().trim();if(a.equals("dog")) 
{ 
    //call the iframe which u need 
} 

에서 데이터를 가져 오는 후 참고 : 모든 이미지를 작업 디렉토리에 저장하거나 이미지와 관련된 이미지 및 정보가 포함 된 다른 이름의 모든 프레임을 저장하고 요구 사항에 따라 호출해야합니다. 다음 코드는 당신이 당신의 문제를 해결하는 데 도움이 될 수 있습니다