Hej, jag försöker läsa in en variabel som jag döpt till AxesBeskrivning.
I koden så trycks valet från en kombobox ihopa med "Beskrivning" så den läser rätt beskrivning till rätt val och visar det i tooltip(Den sätts ihopa under rubriken "//Letar efter bilden med variabeln från komboboxen och av filtypen .gif"). Detta fungerar dock inte då den bara skriver ut "AxesBeskrivning" istället för det som finns lagrat i själva variabeln. Någon som vet vad felet är?
//Importerar paketen som behövs
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Minecraftcrafting extends JPanel
implements ActionListener {
JLabel picture;
String AxesBeskrivning = "Axes are tools used to ease the process of collecting woods, planks, chests and bookcases, but are not required to gather them. Higher levels chop wood faster ";
public Minecraftcrafting() {
super(new BorderLayout());
//Lägger in alla alternativ till komboboxen i en String
String[]alternativ1 = { "Minecraft Crafting", "Arrows", "Axes", "Beds", "Black Wool", "Blaze Powder", "Blue Wool",
"Boat", "Bone Meal", "Book", "Bookshelf", "Boots", "Bow", "Bowls", "Bread", "Brewing Stand",
"Brick(Block)", "Brown Wool", "Bucket", "Cake", "Cauldron", "Chest", "Chestplates", "Clay Block",
"Clock", "Compass", "Cookie", "Crafting Table", "Cyan Dye", "Cyan Wool", "Dandelion Yellow",
"Detector Rails", "Dispenser", "Doors", "Enchantment Table", "Eye of Ender", "Fence Gate", "Fences",
"Fermented Spider Eye", "Fishing Rod", "Flint and steel", "Furnace", "Glass Bottle", "Glass Pane",
"Glistering Melon", "Glowstone","Gold Ingot", "Gold Nugget", "Golden Apple","Green Wool", "Grey Dye", "Grey Wool",
"Helmets", "Hoes", "Iron Bars", "Jack-O-Lantern", "Jukebox", "Ladders", "Leggings", "Lever",
"Light Blue Dye", "Light Blue Wool", "Light Gray Dye", "Light Gray Wool", "Lime Dye", "Magenta Dye",
"Magenta Wool", "Magma Cream", "Maps", "Melon Block", "Melon Seeds", "Minecart", "Minerals", "Mushroom Stew",
"Nether Brick Fence", "Note Block", "Orange Dye", "Orange Wool", "Ore Blocks","Painting", "Paper", "Pickaxes",
"Pink Dye", "Pink Wool", "Piston", "Powered Minecart", "Powered Rail", "Pressure Plates", "Pumpkin Seeds",
"Purple Dye", "Purple Wool", "Rails", "Red Wool", "Redstone Repeater", "Redstone Torch", "Rose Red", "Sandstone",
"Shears", "Shovels", "Sign", "Slabs", "Snow Block", "Stairs", "Sticks", "Sticky Piston", "Stone Brick",
"Stone Button", "Storage Minecart", "Sugar", "Swords", "TNT", "Torches", "Trapdoors", "Wooden Planks", "Wool",
"Yellow Wool"};
//Skapar komboboxen och sätter bild nummer 0 som startbild
JComboBox alternativ = new JComboBox(alternativ1);
alternativ.setSelectedIndex(0);
alternativ.addActionListener(this);
//Sätter ihop bilden
picture = new JLabel();
picture.setFont(picture.getFont().deriveFont(Font.ITALIC));
picture.setHorizontalAlignment(JLabel.CENTER);
updateLabel(alternativ1[ alternativ.getSelectedIndex()]);
picture.setBorder(BorderFactory.createEmptyBorder(10,0,0,0));
//Skapar en maximal storlek för bilden(större bilder anpassas medan mindre bilder inte ändras), ger också storleken på fönstret
picture.setPreferredSize(new Dimension(500, 500));
//Ger en kantlinje på minimum 20 pixlar
add( alternativ, BorderLayout.PAGE_START);
add(picture, BorderLayout.PAGE_END);
setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
}
//Lyssnar efter vilket alternativ man väljer i komboboxen, lagrar i en String
public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox)e.getSource();
String bokstav = (String)cb.getSelectedItem();
updateLabel(bokstav);
}
//Letar efter bilden med variabeln från komboboxen och av filtypen .gif
protected void updateLabel(String name) {
String Beskrivning = (name + "Beskrivning");
System.out.println(Beskrivning);
ImageIcon icon = createImageIcon(name + ".gif");
picture.setIcon(icon);
picture.setToolTipText(Beskrivning);
if (icon != null) {
picture.setText(null);
} else {
picture.setText("Image not found");
}
}
//Skickar den upphittade bilden
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = Minecraftcrafting.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
//Skapar GUI
private static void createAndShowGUI() {
//Skapar och sätter upp fönstret
JFrame frame = new JFrame("ComboBoxDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Skapar panelen som visar bilderna
JComponent newContentPane = new Minecraftcrafting();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Visar fönstret
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}