Jump to content

Loading any Tradeable item image onto a GUI


empathy

Recommended Posts

I made this for fun and I really don't plan on using it. I'm gonna release it. Feel free to use it or don't. I don't care doge.png

 

Also the code isn't that clean.

 

What it does:

 

https://gyazo.com/442cf002eb683ed0343f6f62f79e2d15

 

 

Code (Note* the first item search may lag a tiny bit due to loading the text document from online. An easy fix is to load the text document locally):

 

package org.empathy.combat.equipment.gui;

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

public class Gui extends JFrame {

    private JPanel contentPane;
    private JTextField textField;
    private int itemId;
    String path = "http://cdn.rsbuddy.com/items/" + itemId + ".png";
    JLabel lblNewLabel;
    BufferedImage image;
    private JLabel lblTypeAnItem;
    
    
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Gui frame = new Gui();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Gui() {
        //setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 340, 382);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        
        textField = new JTextField();
        textField.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                checkText();                
                
            }
            
        });
        textField.setBounds(118, 49, 86, 20);
        contentPane.add(textField);
        textField.setColumns(10);
        
        try {

        image = ImageIO.read(new URL(path));
        lblNewLabel = new JLabel();
        lblNewLabel.setBounds(118, 92, 86, 73);
        contentPane.add(lblNewLabel);
        
        lblTypeAnItem = new JLabel("Type an item name and hit Enter");
        lblTypeAnItem.setBounds(80, 28, 208, 14);
        contentPane.add(lblTypeAnItem);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    public void checkText() {
        if (textField.getText() != null) {
            try {
                URL url = new URL("https://gist.githubusercontent.com/anonymous/a1aa9894c1acc0c1c201/raw/b8bd35ed57a9cedfb1dc2379212ac79faa979136/IDs.txt");
                BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
                String line;
                while ((line = in.readLine()) != null) {
                    if (line.toLowerCase().contains(textField.getText().toLowerCase())) {
                        String[] x = line.toLowerCase().split(textField.getText().toLowerCase() + " - ");
                        int i = Integer.parseInt(x[1]);
                        image = ImageIO.read(new URL("http://cdn.rsbuddy.com/items/" + i + ".png"));
                        lblNewLabel.setIcon(new ImageIcon(image));
                        break;
                        }
                    }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
Edited by empathy
  • Like 4
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...