class BildPanel extends JPanel
{
private static final long serialVersionUID = 1L;
private BufferedImage img;
public BildPanel(String dateiName)
{
try
{
img = ImageIO.read(getClass().getResourceAsStream(dateiName));
}
catch (IOException e)
{
JOptionPane.showMessageDialog(null, dateiName + " wurde nicht gefunden!");
}
this.setPreferredSize(new Dimension(img.getWidth(), img.getHeight()));
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(img,0,0,null);
}
}
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class Fenster1 extends JFrame {
private JTextField field1;
ImageIcon img1 = new ImageIcon("flasche.png"); //neues Bild
ImageIcon img2 = new ImageIcon("flasche2.jpg"); //neues Bild UNBENUTZT!
public Fenster1()
{
final JTextField field1 = new JTextField(10);
field1.setBounds(305,525,150,25);
final JLabel ilabel1 = new JLabel(img1);
ilabel1.setBounds(50,50,50,50);
setLayout(null);
setTitle("Fenster");
add(field1);
setSize(800,600);
setLocation(300,300);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
final String textinhalt = field1.getText();
field1.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
//funktioniert noch nicht:
String gut = "wasser";
if (key == KeyEvent.VK_ENTER) {
if(sendString(textinhalt) == gut){
add(ilabel1);
}
}}
});
}
private void sendString(String textinhalt) {
}
}
was meinst du damit?Das problem ist da, dass sich void und der string bzw. der eingegebene Text und der String nicht gleichsetzen lassen.
Wenn man den Button drückt und im Text Field Flamme steht dann öffnet sich ein neues Fenster in dem ein Bild von einer Flamme kommt. Wenn man Kanister schreibt dann öffnet sich ein Fenster in dem ein Bild von einem Kanister ist. Wenn man Flamme+Kanister schreibt dann öffnet sich ein Fenster indem zuerst eine Flamme dann ein Kanister und dann eine Explosion angezeigt wird? Richtig so?
was meinst du damit?Das problem ist da, dass sich void und der string bzw. der eingegebene Text und der String nicht gleichsetzen lassen.
String gut = "wasser";
if(field1.getText() == gut){
add(ilabel1)
}
Strings vergleicht man per equals!!Das problem ist da, dass sich void und der string bzw. der eingegebene Text und der String nicht gleichsetzen lassen.
String gut = "wasser";
if(field1.getText().equals(gut){
add(ilabel1)
}
ok ich mach mich dann mal dran das ganze etwas zu verändern
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class Fenster1 extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
JTextField field1;
static Fenster1 frm;
final JButton button=new JButton("Kombinieren");
String textinhalt;
public Fenster1(String title)
{
super();
setLayout(new FlowLayout());
field1= new JTextField(10);
setTitle(title);
add(field1);
add(button);
setSize(400,75);
setLocation(300,300);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
button.addActionListener(this); //hier wird der button zum actionlistener hinzugefügt damit dieser auf den "button" hört
}
public void actionPerformed(ActionEvent evt) //hört auf aktionen
{
Object obj=evt.getSource();
if(obj==button) //wenn der button gedrückt wurde
{
textinhalt = field1.getText();
if(textinhalt.equals("wasser"))
{
bildanzeigen("wasser.jpg"); //bild muss so abgespeichert worden sein
}
if(textinhalt.equals("wasser+feuer"))
{
bildanzeigen("explosion.jpg");
}
if(textinhalt.equals("feuer"))
{
bildanzeigen("feuer.jpg");
}
}
}
public static void main(String[]args)
{
frm=new Fenster1("Fenster");
}
public void bildanzeigen(String verzeichnis) //hier wird ein neues fenster geöffnet und ein bild dortdrin geladen
{
JDialog dlg = new JDialog(); //neues fenster mit dem bild
dlg.add(new BildPanel(verzeichnis));//hier halt deinen Bildtitel angeben
dlg.pack();
dlg.setLocationRelativeTo(null);
dlg.setVisible(true);
}
class BildPanel extends JComponent //das hier ist die klasse mit der du zeichnen kannst
{
private static final long serialVersionUID = 1L;
private BufferedImage img;
public BildPanel(String dateiName)
{
try
{
img = ImageIO.read(getClass().getResourceAsStream(dateiName)); //hier wird das verzeichnis geholt und das bild geladen
}
catch (IOException e)
{
JOptionPane.showMessageDialog(null, dateiName + " wurde nicht gefunden!"); //wenn der dateiname vom bild nicht stimmt
}
this.setPreferredSize(new Dimension(img.getWidth(), img.getHeight()));
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(img,0,0,null); //hiermit wird das bild gemalt
}
}
}
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
public class Fenster1 extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
JTextField field1;
static Fenster1 frm;
final JButton button=new JButton("Kombinieren");
String textinhalt;
public Fenster1(String title)
{
super();
setLayout(new FlowLayout());
field1= new JTextField(10);
setTitle(title);
add(field1);
add(button);
setSize(400,75);
setLocationRelativeTo(null);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
button.addActionListener(this); //hier wird der button zum actionlistener hinzugefügt damit dieser auf den "button" hört
}
public void actionPerformed(ActionEvent evt) //hört auf aktionen
{
Object obj=evt.getSource();
if(obj==button) //wenn der button gedrückt wurde
{
textinhalt = field1.getText();
if(frm.getWidth()>1500) //WENN DER FRAME SO GROSS IST DASS ER ÜBER DEN GANZEN BILDSCHIRM GEHT, SCHLIESSEN
{
System.exit(0);
}
if(textinhalt.equals("wasser"))
{
bildanzeigen("wasser.jpg"); //bild muss so abgespeichert worden sein
}
if(textinhalt.equals("wasser+feuer"))
{
bildanzeigen("explosion.jpg");
}
if(textinhalt.equals("feuer"))
{
bildanzeigen("feuer.jpg");
}
}
}
public static void main(String[]args)
{
frm=new Fenster1("Fenster");
}
public void bildanzeigen(String verzeichnis) //hier wird ein neues fenster geöffnet und ein bild dortdrin geladen
{
setBackground(Color.WHITE);
add(new BildPanel(verzeichnis));//hier halt deinen Bildtitel angeben
pack();
setLocationRelativeTo(null);
setVisible(true);
}
class BildPanel extends JComponent //das hier ist die klasse mit der du zeichnen kannst
{
private static final long serialVersionUID = 1L;
private BufferedImage img;
public BildPanel(String dateiName)
{
try
{
img = ImageIO.read(getClass().getResourceAsStream(dateiName)); //hier wird das verzeichnis geholt und das bild geladen
}
catch (IOException e)
{
JOptionPane.showMessageDialog(null, dateiName + " wurde nicht gefunden!"); //wenn der dateiname vom bild nicht stimmt
}
this.setPreferredSize(new Dimension(img.getWidth(), img.getHeight()));
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawImage(img,0,0,null); //hiermit wird das bild gemalt
}
}
}