Skip to content

Commit 7c377f4

Browse files
2026-05-13 added images in jar file and started to load images from single j́ar file or from file system
1 parent 39bbe72 commit 7c377f4

3 files changed

Lines changed: 98 additions & 13 deletions

File tree

java/classes.list

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -562,3 +562,57 @@ eu/cqrxs/gui/DropPanel$DragUpdate.class
562562
eu/cqrxs/gui/CqrJdFrame$HashChangeListener.class
563563
eu/cqrxs/gui/CqrJFrameSimple$1.class
564564
eu/cqrxs/gui/CqrJFrameSimple$EncodeChangeListener.class
565+
eu/cqrxs/gui/img/aria.png
566+
eu/cqrxs/gui/img/zenmatrix.png
567+
eu/cqrxs/gui/img/rc564.png
568+
eu/cqrxs/gui/img/encode_hex64.png
569+
eu/cqrxs/gui/img/noekeon.png
570+
eu/cqrxs/gui/img/encode_uu.png
571+
eu/cqrxs/gui/img/cast5.png
572+
eu/cqrxs/gui/img/a_hash.png
573+
eu/cqrxs/gui/img/seed.png
574+
eu/cqrxs/gui/img/zenmatrix2.png
575+
eu/cqrxs/gui/img/camellialight.png
576+
eu/cqrxs/gui/img/cipheralgo.png
577+
eu/cqrxs/gui/img/file.png
578+
eu/cqrxs/gui/img/cipherpipeblank.png
579+
eu/cqrxs/gui/img/decodingasciitobin.png
580+
eu/cqrxs/gui/img/dstu7624.png
581+
eu/cqrxs/gui/img/tnepres.png
582+
eu/cqrxs/gui/img/encode_xx.png
583+
eu/cqrxs/gui/img/skipjack.png
584+
eu/cqrxs/gui/img/gz.png
585+
eu/cqrxs/gui/img/gunzip.png
586+
eu/cqrxs/gui/img/decrypted.png
587+
eu/cqrxs/gui/img/decryptcipherpipe.png
588+
eu/cqrxs/gui/img/cast6.png
589+
eu/cqrxs/gui/img/fish2.png
590+
eu/cqrxs/gui/img/rc6.png
591+
eu/cqrxs/gui/img/gost28147.png
592+
eu/cqrxs/gui/img/rc2.png
593+
eu/cqrxs/gui/img/blowfish.png
594+
eu/cqrxs/gui/img/pipestartblock.png
595+
eu/cqrxs/gui/img/camellia.png
596+
eu/cqrxs/gui/img/rc532.png
597+
eu/cqrxs/gui/img/sm4.png
598+
eu/cqrxs/gui/img/fish3.png
599+
eu/cqrxs/gui/img/encode_base16.png
600+
eu/cqrxs/gui/img/tea.png
601+
eu/cqrxs/gui/img/key_ring.png
602+
eu/cqrxs/gui/img/des.png
603+
eu/cqrxs/gui/img/encoding.png
604+
eu/cqrxs/gui/img/encode_hex32.png
605+
eu/cqrxs/gui/img/rijndael.png
606+
eu/cqrxs/gui/img/encode_base64.png
607+
eu/cqrxs/gui/img/encode_base32.png
608+
eu/cqrxs/gui/img/idea.png
609+
eu/cqrxs/gui/img/serpent.png
610+
eu/cqrxs/gui/img/encode_0.png
611+
eu/cqrxs/gui/img/aes.png
612+
eu/cqrxs/gui/img/aeslight.png
613+
eu/cqrxs/gui/img/xtea.png
614+
eu/cqrxs/gui/img/des3.png
615+
eu/cqrxs/gui/img/encode_hex16.png
616+
eu/cqrxs/gui/img/encrypted.png
617+
eu/cqrxs/gui/img/cqrxs-eu.jpg
618+
META-INF/MANIFEST.MF

java/eu.cqrxs.jar

458 KB
Binary file not shown.

java/eu/cqrxs/gui/CqrJdFrame.java

Lines changed: 44 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ public class CqrJdFrame extends JFrame {
9999
JTextArea jTextAreaSource, jTextAreaDestination;
100100
JScrollPane scrollSource, scrollDestination;
101101

102-
BufferedImage imgKey, imgHash, imgAddAlgo, imgX;
103102
eu.cqrxs.gui.DropPanel dropPanel;
104103
eu.cqrxs.gui.CqrJDialog cqrJDialog;
105104

@@ -689,12 +688,12 @@ public void Init() {
689688
jBar = AddMenus(lSymAction);
690689
setJMenuBar(jBar);
691690

692-
imgKey = addImages(new String[] { "eu/cqrxs/gui/img/key_ring.gif", "img/key_ring.gif" });
693-
imgHash = addImages(new String[] { "eu/cqrxs/gui/img/a_hash.png", "img/a_hash.png" });
694-
imgAddAlgo = addImages(new String[] { "eu/cqrxs/gui/img/AddAesArrowHover.gif", "img/AddAesArrowHover.gif" });
695-
imgX = addImages(new String[] { "eu/cqrxs/gui/img/close_delete.gif", "img/close_delete.gif" });
691+
// Source - https://stackoverflow.com/q/2483283
692+
// Posted by Mr CooL, modified by community. See post 'Timeline' for change history
693+
// Retrieved 2026-05-12, License - CC BY-SA 3.0
694+
// setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("eu/cqrxs/gui/img/key_ring.gif")));
696695

697-
jLabelImgKey = new JLabel(new ImageIcon(imgKey));
696+
jLabelImgKey = new JLabel(getJarImageIcon("eu/cqrxs/gui/img/key_ring.png"));
698697
jLabelImgKey.setBounds(12,25,30,30);
699698
jLabelImgKey.setText("[Key]");
700699
jLabelImgKey.setFont(cryptFont);
@@ -722,7 +721,7 @@ public void Init() {
722721
getContentPane().add(jComboBox_Hash);
723722
selectItemByString(jComboBox_Hash, menuHash, "Hex");
724723

725-
jLabelImgHash = new JLabel(new ImageIcon(imgHash));
724+
jLabelImgHash = new JLabel(getJarImageIcon("eu/cqrxs/gui/img/a_hash.png"));
726725
jLabelImgHash.setBounds(12, 67, 40, 30);
727726
jLabelImgHash.setText("[Hash]");
728727
jLabelImgHash.setFont(cryptFont);
@@ -762,7 +761,7 @@ public void Init() {
762761
jComboBox_Algo.addItemListener(new CipherChangeListener());
763762
getContentPane().add(jComboBox_Algo);
764763

765-
jLabelImgAddAlgo = new JLabel(new ImageIcon(imgAddAlgo));
764+
jLabelImgAddAlgo = new JLabel(getJarImageIcon("eu/cqrxs/gui/img/AddAesArrowHover.gif"));
766765
jLabelImgAddAlgo.setBounds(230, 111, 32, 27);
767766
jLabelImgAddAlgo.addMouseListener(aSymMouse);
768767
getContentPane().add(jLabelImgAddAlgo);
@@ -778,7 +777,7 @@ public void Init() {
778777
jTextField_Pipe.setFont(cryptFont);
779778
getContentPane().add(jTextField_Pipe);
780779

781-
jLabelImgX = new JLabel(new ImageIcon(imgX));
780+
jLabelImgX = new JLabel(getJarImageIcon("eu/cqrxs/gui/img/close_delete.gif"));
782781
jLabelImgX.setBounds(844, 112, 27, 27);
783782
jLabelImgX.addMouseListener(aSymMouse);
784783
getContentPane().add(jLabelImgX);
@@ -1573,17 +1572,49 @@ protected void exit_action(ActionEvent event) {
15731572
}
15741573

15751574

1576-
protected Image setJarIncludedImage(String imgstr) {
1575+
/**
1576+
* getJarImageIcon gets an {@link ImageIcon} from included jar file or relative path location
1577+
* @param jarImgPath{@link String[]} with path to image file inside or outside jar
1578+
* @return {@link ImageIcon}
1579+
*/
1580+
protected ImageIcon getJarImageIcon(String jarImgPath) {
1581+
ImageIcon imgIcon = null;
1582+
try {
1583+
1584+
imgIcon = new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource(jarImgPath)));
1585+
1586+
} catch (Exception e) {
1587+
DbgWriter.msgex(e, false);
1588+
1589+
String shortImgPath = jarImgPath;
1590+
if (jarImgPath.contains("img")) {
1591+
int idx = jarImgPath.indexOf("img");
1592+
int len = jarImgPath.length();
1593+
shortImgPath = jarImgPath.substring(idx, len);
1594+
}
1595+
1596+
imgIcon = new ImageIcon(addImages(new String[] { jarImgPath, shortImgPath }));
1597+
}
1598+
1599+
return imgIcon;
1600+
}
1601+
1602+
/*
1603+
* Old JJ 1996
1604+
*/
1605+
protected Image getJarIncludedImage(String imgstr) {
15771606
Image img = null;
15781607
try {
15791608
InputStream is = getClass().getResourceAsStream(imgstr);
15801609
BufferedInputStream bis = new BufferedInputStream(is);
15811610
// a buffer large enough for our image can be byte[] byBuf = = new byte[is.available()];
1582-
byte[] byBuf = new byte[10000]; // is.read(byBuf); or something like that...
1583-
int byteRead = bis.read(byBuf, 0, 10000);
1611+
byte[] byBuf = new byte[(65536*4)]; // is.read(byBuf); or something like that...
1612+
int byteRead = bis.read(byBuf, 0, (4*65536));
15841613
img = Toolkit.getDefaultToolkit().createImage(byBuf);
15851614
} catch(Exception e) {
1586-
DbgWriter.msgex(e, true);
1615+
DbgWriter.msg("getJarIncludedImage(String imgstr = " + imgstr+ ")", true);
1616+
DbgWriter.msgex(e, true);
1617+
e.printStackTrace();
15871618
}
15881619
return img;
15891620
}

0 commit comments

Comments
 (0)