java - JButton 和 JTextField 的连接?

标签 java swing jframe jbutton jtextfield

我只是想知道如何通过键入特定字符来创建新框架,然后如果单击 J 按钮,(该字符的)所有信息都会弹出 - 例如图片或文本。

例如,如果我输入“Dog”一词,则会在新窗口中弹出一张狗的图片及其相关信息。没有数据库可以吗?

如果可能的话,我想在没有数据库的情况下完成它。

这是我的代码:

 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);



}



}

最佳答案

以下代码可能会帮助您解决问题,

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()
            }
        }
    }
}

关于java - JButton 和 JTextField 的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25762772/

相关文章:

java - 试图创建一个可点击的按钮但在编译时抛出错误

Java重绘()困惑

java - 从返回枚举的接口(interface)检索数据

java - 使用JPA手动控制数据库更新

java - 一旦我们将鼠标悬停在 Eclipse 编辑器中,就不会调用 getTitleTooltip 方法

java - 尝试在 JTextArea 中使用 BufferedWriter 时发生并发冲突

java - 更改 ThreadPoolExecutor 的队列大小

java - 使用 while 语句时不出现 JFrame

java - Eclipse 中带有 WindowBuilder 的应用程序窗口

java - JFrame 每次启动都会推出不同的尺寸