Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7553489
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 30, 20262026-05-30T11:04:21+00:00 2026-05-30T11:04:21+00:00

I wrote a poker simulator / odds calculator. On the GUI, there are some

  • 0

I wrote a poker simulator / odds calculator. On the GUI, there are some JComboBoxes from which the user can choose the cards.

Now, I have the images for those cards and I also have them in Base64 format. There are 3 different ways I tried to display them. I wrote a small program for each one for demonstration purposes.

Here are the 3 methods I have tried:

1). Store the images in the JAR file:

Pretty straightforward. The images go into the JAR and the Java code reads them from there. After that, it creates a JComboBox with all of them and displays it:

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.ImageIcon;

public class ImagesFromJAR
{
    private JFrame mainframe;

    public ImagesFromJAR ()
    {
        ImageIcon[] cardslist = new ImageIcon[52];

        for (int i = 0; i < 52; ++i)
        {
            cardslist[i] = new ImageIcon (getClass (). getResource ((this.getImagePath (i))));
        }

        JComboBox cardsbox = new JComboBox (cardslist);
        cardsbox.setSelectedIndex (0);
        cardsbox.setEditable (false);

        this.mainframe = new JFrame ();
        this.mainframe.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
        this.mainframe.setSize (150, 150);
        this.mainframe.setLayout (null);

        cardsbox.setBounds (20, 20, 55, 45);
        this.mainframe.add (cardsbox);

        this.mainframe.setVisible (true);
    }

    private String getImagePath (int index)
    {
        switch (index)
        {
            case 0: return "images/2c.gif";
            case 1: return "images/3c.gif";
            case 2: return "images/4c.gif";
            case 3: return "images/5c.gif";
            case 4: return "images/6c.gif";
            case 5: return "images/7c.gif";
            case 6: return "images/8c.gif";
            case 7: return "images/9c.gif";
            case 8: return "images/Tc.gif";
            case 9: return "images/Jc.gif";
            case 10: return "images/Qc.gif";
            case 11: return "images/Kc.gif";
            case 12: return "images/Ac.gif";
            case 13: return "images/2d.gif";
            case 14: return "images/3d.gif";
            case 15: return "images/4d.gif";
            ......................................
            default: return null;
        }
    }

    public static void main (String[] args)
    {
        javax.swing.SwingUtilities.invokeLater (new Runnable ()
        {
            public void run ()
            {
                ImagesFromJAR t = new ImagesFromJAR ();
            }
        });
    }
}

2). Store the images in Base64 format in a text-file:

I converted each image in Base64 format and then stored in a text-file. The Java code reads that file and recreates the images by decoding the lines in the file. After that, a JComboBox is created and displayed:

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.ImageIcon;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.FileInputStream;
import java.io.IOException;

public class CodeFromFile
{
    private JFrame mainframe;

    public CodeFromFile ()
    {
        ImageIcon[] cardslist = new ImageIcon[52];

        InputStreamReader in = null;
        BufferedReader buff;

        int index = -1;

        try
        {
            in = new InputStreamReader (new FileInputStream ("card.encodings.txt"));
            buff = new BufferedReader (in);

            String line;
            byte[] ba;

            while ((line = buff.readLine ()) != null)
            {
                if (line.length () < 10)
                {
                    continue;
                }

                index++;

                ba = Base64.decode (line);

                cardslist[index] = new ImageIcon (ba);
            }
        }
        catch (IOException e)
        {
            e.printStackTrace ();
        }
        finally
        {
            if (in != null)
            {
                try
                {
                    in.close ();
                }
                catch (IOException e2) {}
            }
        }

        JComboBox cardsbox = new JComboBox (cardslist);
        cardsbox.setSelectedIndex (0);
        cardsbox.setEditable (false);

        this.mainframe = new JFrame ();
        this.mainframe.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
        this.mainframe.setSize (150, 150);
        this.mainframe.setLayout (null);

        cardsbox.setBounds (20, 20, 55, 45);
        this.mainframe.add (cardsbox);

        this.mainframe.setVisible (true);
    }

    public static void main (String[] args)
    {
        javax.swing.SwingUtilities.invokeLater (new Runnable ()
        {
            public void run ()
            {
                CodeFromFile t = new CodeFromFile ();
            }
        });
    }
}

The content of the card.encodings.txt is like this:

2c:
R0lGODlhHgAmAMQAAAAAAP///+7u7t3d3czMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAeACYAAAXKIAQBZGme6CmOQeu+cAwDrGzfLonvss7/LR/u8AA0CDuh7WB6CHBKGeOEgAJ2RdPCunNQuTIFwLE4lR+H3jWWSKEMsWgr6y4p4msYvTQ93Wd5LwgnCQd9JQV4NoNjBwIMAYwNcIo8ZVVJgTIJhwuYNnIubW6UlUA8oaemqjeprDmaMQN9DEhgN5MBBA5OtzIHtgEGAJ9qpwLEvjsDAImtsTcIkMo3Ag4DmUAMztSbaajQMAmfCdig4aInDt3pfuyvQTXwMyt19ikiIQA7
3c:
R0lGODlhHgAmAMQAAAAAAP///+7u7t3d3czMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAeACYAAAXMIAQBZGme6CmOQeu+cAwDrGzfLonvss7/LR/u8AA0CDuh7WB6CHBKGeOEgAJ2RdPCunNQuTIFwLE4lR+H3jWWSKEMsWgr6y4p4msYvTQ93Wd5LwgnCQd9JQV4NoNjBwIMAYwNcIo8ZVVJgTIJhwuYNnIubW6UlUA8oaemqjeprDmaMowMA5k7B2kEDg22OJ+DT62xNwtbYDsDC5C9OAYkD6Wgw7JFSMKnzp9qqg/aq8gAidc3BQB3j3/jNgINJA3e26+tNfIzK3X4KSIhADs=
4c:
R0lGODlhHgAmALMAAAAAAP///+7u7szMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///yH5BAEAAA8ALAAAAAAeACYAAATC8D1Aq734yhm6/2AIApxonh6FrqLKvp2LGg7ADKtsGpYjoDrR4nIAAlY1i8K4ahCZogSgobhUHYbWMYTIYAqhYCfprSTCWxC5MrycR+nP4YIwtCsEtGk+NQgWAXwMYHosVUU5cSIIdwqIJmIeXV6EhTAskZeWmieZnCmKJwkMmKEiBTalLAINDaSJLAkHDK9QJwWAtKonAgw/urAnCnkBwLYhBm/FtZ2mHQwZCMcoxs0w1ZDOIdhan0Al3iMbZeQZEhEAOw==
5c:
R0lGODlhHgAmALMAAAAAAP///+7u7szMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///yH5BAEAAA8ALAAAAAAeACYAAATA8D1Aq734yhm6/2AIApxonh6FrqLKvp2LGg7ADKtsGpYjoDrR4nIAAlY1i8K4ahCZogSgobhUHYbWMYTIYAqhYCfprSTCWxC5MrycR+nP4YIwtCsEtGk+NQgWAXwMYHosVUU5cSIIdwqIJmIeXV6EhTAskZeWmieZnCmKJgwVS52hIQQWWaaGj4krAwAOCD+vKFIUDpWQpyEHQz5QL12umywMpbyaCAjCLzfOizgBjrYnbQu7yp+dJdwjG2XiGRIRADs=

.. and it goes on for every image/card.

3). The third way is to store the images as Base64 Strings directly in the source code. Like this:

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.ImageIcon;

public class CodeFromSource
{
    private JFrame mainframe;

    public CodeFromSource ()
    {
        ImageIcon[] cardslist = new ImageIcon[52];

        byte[] ba;

        for (int i = 0; i < 52; ++i)
        {
            ba = Base64.decode (this.getImageCode (i));
            cardslist[i] = new ImageIcon (ba);
        }

        JComboBox cardsbox = new JComboBox (cardslist);
        cardsbox.setSelectedIndex (0);
        cardsbox.setEditable (false);

        this.mainframe = new JFrame ();
        this.mainframe.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
        this.mainframe.setSize (150, 150);
        this.mainframe.setLayout (null);

        cardsbox.setBounds (20, 20, 55, 45);
        this.mainframe.add (cardsbox);

        this.mainframe.setVisible (true);
    }

    private String getImageCode (int index)
    {
        switch (index)
        {
            case 0: return "R0lGODlhHgAmAMQAAAAAAP///+7u7t3d3czMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAeACYAAAXKIAQBZGme6CmOQeu+cAwDrGzfLonvss7/LR/u8AA0CDuh7WB6CHBKGeOEgAJ2RdPCunNQuTIFwLE4lR+H3jWWSKEMsWgr6y4p4msYvTQ93Wd5LwgnCQd9JQV4NoNjBwIMAYwNcIo8ZVVJgTIJhwuYNnIubW6UlUA8oaemqjeprDmaMQN9DEhgN5MBBA5OtzIHtgEGAJ9qpwLEvjsDAImtsTcIkMo3Ag4DmUAMztSbaajQMAmfCdig4aInDt3pfuyvQTXwMyt19ikiIQA7";
            case 1: return "R0lGODlhHgAmAMQAAAAAAP///+7u7t3d3czMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAeACYAAAXMIAQBZGme6CmOQeu+cAwDrGzfLonvss7/LR/u8AA0CDuh7WB6CHBKGeOEgAJ2RdPCunNQuTIFwLE4lR+H3jWWSKEMsWgr6y4p4msYvTQ93Wd5LwgnCQd9JQV4NoNjBwIMAYwNcIo8ZVVJgTIJhwuYNnIubW6UlUA8oaemqjeprDmaMowMA5k7B2kEDg22OJ+DT62xNwtbYDsDC5C9OAYkD6Wgw7JFSMKnzp9qqg/aq8gAidc3BQB3j3/jNgINJA3e26+tNfIzK3X4KSIhADs=";
            case 2: return "R0lGODlhHgAmALMAAAAAAP///+7u7szMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///yH5BAEAAA8ALAAAAAAeACYAAATC8D1Aq734yhm6/2AIApxonh6FrqLKvp2LGg7ADKtsGpYjoDrR4nIAAlY1i8K4ahCZogSgobhUHYbWMYTIYAqhYCfprSTCWxC5MrycR+nP4YIwtCsEtGk+NQgWAXwMYHosVUU5cSIIdwqIJmIeXV6EhTAskZeWmieZnCmKJwkMmKEiBTalLAINDaSJLAkHDK9QJwWAtKonAgw/urAnCnkBwLYhBm/FtZ2mHQwZCMcoxs0w1ZDOIdhan0Al3iMbZeQZEhEAOw==";
            case 3: return "R0lGODlhHgAmALMAAAAAAP///+7u7szMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///yH5BAEAAA8ALAAAAAAeACYAAATA8D1Aq734yhm6/2AIApxonh6FrqLKvp2LGg7ADKtsGpYjoDrR4nIAAlY1i8K4ahCZogSgobhUHYbWMYTIYAqhYCfprSTCWxC5MrycR+nP4YIwtCsEtGk+NQgWAXwMYHosVUU5cSIIdwqIJmIeXV6EhTAskZeWmieZnCmKJgwVS52hIQQWWaaGj4krAwAOCD+vKFIUDpWQpyEHQz5QL12umywMpbyaCAjCLzfOizgBjrYnbQu7yp+dJdwjG2XiGRIRADs=";
            case 4: return "R0lGODlhHgAmAMQAAAAAAP///+7u7t3d3czMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAeACYAAAXZIAQBZGme6CmOQeu+cAwDrGzfLonvss7/LR/u8AA0CDuh7WB6CHBKGeOEgAJ2RdPCunNQuTIFwLE4lR+H3jWWSKEMsWgr6y4p4msYvTQ93Wd5LwgnCQd9JQV4NoNjBwIMAYwNcIo8ZVVJgTIJhwuYNnIubW6UlUA8oaemqjeprDmaNwNiAE+gsTJMDKW3PExpqLgvAw+fmTsLD6MMtr04DwxITA1gNgQAn2KJztbYLky8gDgD3i0GANtqOw0O3w/VNgUAdwQOwNw3Bl5ox6+tNf5mrKhDMIWIEAA7";
            case 5: return "R0lGODlhHgAmAMQAAAAAAP///+7u7t3d3czMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAeACYAAAXGIAQBZGme6CmOQeu+cAwDrGzfLonvss7/LR/u8AA0CDuh7WB6CHBKGeOEgAJ2RdPCunNQuTIFwLE4lR+H3jWWSKEMsWgr6y4p4msYvTQ93Wd5LwgnCQd9JQV4NoNjBwIMAYwNcIo8ZVVJgTIJhwuYNnIubW6UlUA8oaemqjeprDmaMUwniaCxMIckD2A2j08tCX+2OAO/LQ61w0AFDpmnCgnOQA5IvDsGDai3YZ+t2zEPA9o/hj+uLwtp46+tNewzK3XyKSIhADs=";
            case 6: return "R0lGODlhHgAmAMQAAAAAAP///+7u7t3d3czMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAeACYAAAXYIAQBZGme6CmOQeu+cAwDrGzfLonvss7/LR/u8AA0CDuh7WB6CHBKGeOEgAJ2RdPCunNQuTIFwLE4lR+H3jWWSKEMsWgr6y4p4msYvTQ93Wd5LwgnCQd9JQV4NoNjBwIMAYwNcIo8ZVVJgTIJhwuYNnIubW6UlUA8oaemqjeprDmaMowPn6CxMG1wBLRgNw4NLguQrbcvDE4tDAm9S0YDCMPEPIxbmTwGC161ajsGDskA24BdfwHHzDECAOUID+gxCw9wAg3l3DtiJOLjr601/TNW1BmYQkQIADs=";
            case 7: return "R0lGODlhHgAmAMQAAAAAAP///+7u7t3d3czMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAeACYAAAXZIAQBZGme6CmOQeu+cAwDrGzfLonvss7/LR/u8AA0CDuh7WB6CHBKGeOEgAJ2RdPCunNQuTIFwLE4lR+H3jWWSKEMsWgr6y4p4msYvTQ93Wd5LwgnCQd9JQV4NoNjBwIMAYwNcIo8ZVVJgTIJhwuYNnIubW6UlUA8oaemqjeprDmaMghFk5k7CA4DAWJIrbF6aS0OkL44BQClbbqgvy4GyC6DvWrGAH+RANOrMg3QBAwPYDePJLhbxUAGD8vMQAQOn+07A23B4jICJArs969xNf5mrKhDMIWIEAA7";
            case 8: return "R0lGODlhHgAmAMQAAAAAAP///+7u7t3d3czMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAeACYAAAX4IAQBZGme6CmOQeu+cAwDrGzfLonvss7/LR/u8AA0CDuh7WB6CHBKGeOEgAJ2RdPCunNQuTIFwLE4lR+H3jWWSKEMsWgr6y4p4msYvTQ93Wd5LwgnCQd9JQV4NoNjBwIMAYwNcIo8ZVVJgTIJhwuYNnIubW6UlUA8oaemqjeprDmaLgIJDp8BBA1GSKsvDkWfAw9VCA8DvC8FAJ8LDS4NW4A3BMouwi7Exy7TmMlpLUyJL67bLQYApealQbHa1AHpLvDi7C3kAd0u4NE29gHWLdj2yejHzBm0eTeSAbNGzJhAGGVINKuXi8Guh6/i1Mg4Y0WdjylEhAAAOw==";
            case 9: return "R0lGODlhHgAmALMAAAAAAP///+7u7szMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///yH5BAEAAA8ALAAAAAAeACYAAAS38D1Aq734yhm6/2AIApxonh6FrqLKvp2LGg7ADKtsGpYjoDrR4nIAAlY1i8K4ahCZogSgobhUHYbWMYTIYAqhYCfprSTCWxC5MrycR+nP4YIwtCsEtGk+NQgWAXwMYHosVUU5cSIIdwqIJmIeXV6EhTAskZeWmieZnCmKIQM9iS9deaUsczipK6uYoSKvrSizUK4ArLe1ubAvtp2xIQcOL54BVQQIb7TDFEvGwp8xJdMjG2XZGRIRADs=";
            case 10: return "R0lGODlhHgAmAMQAAAAAAP///+7u7t3d3czMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAeACYAAAXvIAQBZGme6CmOQeu+cAwDrGzfLonvss7/LR/u8AA0CDuh7WB6CHBKGeOEgAJ2RdPCunNQuTIFwLE4lR+H3jWWSKEMsWgr6y4p4msYvTQ93Wd5LwgnCQd9JQV4NoNjBwIMAYwNcIo8ZVVJgTIJhwuYNnIubW6UlUA8oaemNgRlJAtIN6ktg38Cl7KaL0wJMGWlgDcOTjAEY6C6LQVGMl6Jq4IAWzENAMA5yZHSMtXXQdkGzDHOajdFAzADx+WLAH8uYmnsNmXTtwC9yDsHXiQN8vp4MPoUkAeBKQwAQttBIIEXbwFoZFMVZEWdiylEhAAAOw==";
            case 11: return "R0lGODlhHgAmAMQAAAAAAP///+7u7t3d3czMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAeACYAAAXgIAQBZGme6CmOQeu+cAwDrGzfLonvss7/LR/u8AA0CDuh7WB6CHBKGeOEgAJ2RdPCunNQuTIFwLE4lR+H3jWWSKEMsWgr6y4p4msYvTQ93Wd5LwgnCQd9JQV4NoNjBwIMAYwNcIo8ZVVJgTIJhwuYNnIubW6UlUA8oaemqjeprDmaLmUlcA0lDaCxLgMAkC4Nk626LQIAWy0IvsI3xccKCajDAc2PadHMRmRArsUMU8pgMs0BUw0DmdjHgw5IyzbjLUwA7Wo3vOBl4IA2syRwoyQe1HvVqgbBGSvqKEwhIgQAOw==";
            case 12: return "R0lGODlhHgAmALMAAAAAAP///+7u7szMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREf///yH5BAEAAA8ALAAAAAAeACYAAATR8D1Aq734yhm6/2AIApxonh6FrqLKvp2LGg7ADKtsGpYjoDrR4nIAAlY1i8K4ahCZogSgobhUHYbWMYTIYAqhYCfprSTCWxC5MrycR+nP4YIwtCsEtGk+NQgWAXwMYHosVUU5cSIIdwqIJmIeXV6EhTAskZeWmieZnCmKJgMAeYkvVW9QKAIODD6mKwcIc4+QoSENA6wMsCcFgAFVOJ23H4MdBQAIqiKjFw3MIQm1XZWbIKw/HqNLticL3cYAtR+ZSQ4fZLzXnyMl7e4SZfMZEhEAOw==";
            case 13: return "R0lGODlhHgAmAMQAAAAAAP////8AAP8REf8iIv8zM/9ERP9VVf9mZv93d/+IiP+Zmf+qqv+7u//MzP/d3f/u7v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABEALAAAAAAeACYAAAW/YBQBZGme6CmOQeu+cAwDrGzfLonvss4HiJ9vtxAkeMMbhCAQNHZJm6EpIEBw0ZiC2gzesq8Gl7r4ApTMcfPZO9sOairBBm4t40662yZWK8w7W1wGWHs3U01WhTx3eYs8DAJejzwJV1CGP5iamnWcM5kxD4gGDps4BQwBDgQDl3o4C6YtkX+AmhACtrCaD468PwqElDtLD6c8BmzENwllSKExCbsJx8A2CWNzt9hqk22f0OFQNeMxNCIp6uskIiEAOw==";
            .........
            default: return null;
        }
    }

    public static void main (String[] args)
    {
        javax.swing.SwingUtilities.invokeLater (new Runnable ()
        {
            public void run ()
            {
                CodeFromSource t = new CodeFromSource ();
            }
        });
    }
}

(I had to delete some switch cases because there is a 30 K characters limit on StackOverflow)

Each of these methods produce the same result, which is this:

Result

PS: The Base64 class is just some utility class that encodes/decodes Base64 information (you can find it in the link below).

If you want all the resources for this (images, source code etc.), you can get them from here: Resources

Now that we cleared that up… what I want is to know which of these 3 methods is better. What are the upsides and downsides of each of them ? Which one should I use ? Why ? I’m also talking about the possibility of JAR file corruption.

The only thing I don’t care about is performance.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-30T11:04:23+00:00Added an answer on May 30, 2026 at 11:04 am
    1. is preferable as there is no conversion involved, and your code can read them from classpath. This makes your appliction self contained. Corruption is not an issue, as this would render whole application useless – not only image files

    2. Will involve runtime penalty for conversion ( startup time and memory ), and alsop introduces configuration files.

    3. Is as bad as 2, but is also less flexible ( you can not change images without recompiling)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm trying to write a simple game/utility to calculate poker odds. I know there's
I'm trying to debug some javascript I wrote and can't figure out why it's
I wrote a thread application which runs an infinite loop. The problem is since
How can I randomly assign weights from a power-law distribution to a network with
There is this simple function which I have used with C++ in the past
I wrote a very small application, which access the Remote Power Shell of Exchanger
I wrote a little powershell function that executes Get-EventLog against remote servers. On some
I wrote a simple program which takes a predefined number to a predefined power
my organisation have two physical servers and some VMs. Currently when there is a
I am not a LINQ power user by any means, but can fumble my

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.