Hi ich habe mal wieder mit meinem Programm ein Problem
bei mir funktionier der MouseListener nicht aus welchem Grund auch immer.
Ich habe jetzt den Funktionierenden Code ohne MouseListener für euch:
Ich möchte gerne überprüfen ob ich in einem bestimmten Bereich des Frames klicke.
Wie mache ich das?????
Ich kann ihn zwar implementieren aber es schaut für mich so aus als ob er
die Klicks gar nicht erkennt!
MFG
programmierer12
bei mir funktionier der MouseListener nicht aus welchem Grund auch immer.
Ich habe jetzt den Funktionierenden Code ohne MouseListener für euch:
Java:
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import awt.ImageLoader;
public class Main implements Runnable{
public static File file;
public static JScrollPane pane;
public static JLabel hilfeText;
public static JFrame f;
public static JButton btnOpen;
public static JButton btnStart;
public static JButton btnHelp;
public static JButton btnEnd;
public static JButton btnHilfeEnd;
@SuppressWarnings("serial")
public static JPanel panel = new JPanel(){
public void paintComponent(Graphics g) {
g.drawImage(ImageLoader.LoadImage("Hintergrund01.png"), 0, 0, null);
}
};
public static void main(String[] args) throws IOException {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
f = new JFrame("AB Cleaner");
f.setContentPane(panel);
f.setSize(340, 260);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
f.setUndecorated(false);
f.setLayout(null);
f.setResizable(false);
f.setVisible(true);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
if (JOptionPane.showConfirmDialog(null, "Möchten Sie das Programm beenden"," Programm beenden ", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
System.exit(0);
}
else{
f.repaint();
}
}
});
JMenuBar mb = new JMenuBar();
f.setJMenuBar(mb);
JMenu start = new JMenu("Start");
mb.add(start);
JMenu hilfe = new JMenu("Hilfe");
mb.add(hilfe);
JMenuItem open = new JMenuItem("Öffnen");
start.add(open);
final JMenuItem beginn = new JMenuItem("Starten");
start.add(beginn);
JMenuItem close = new JMenuItem("Beenden");
start.add(close);
JMenuItem help = new JMenuItem("Hilfe");
hilfe.add(help);
JMenuItem infos = new JMenuItem("Informationen über AB Cleaner");
hilfe.add(infos);
hilfeText = new JLabel();
hilfeText.setBounds(12, 13, 298, 123);
hilfeText.setVisible(false);
panel.add(hilfeText);
btnOpen = new JButton("Öffnen");
btnOpen.setBounds(12, 13, 117, 41);
btnOpen.setVisible(true);
panel.add(btnOpen);
btnStart = new JButton("Start");
btnStart.setBounds(12, 67, 117, 41);
btnStart.setVisible(true);
panel.add(btnStart);
btnEnd = new JButton("Beenden");
btnEnd.setBounds(193, 135, 117, 41);
btnEnd.setVisible(true);
panel.add(btnEnd);
btnHelp = new JButton("Hilfe");
btnHelp.setBounds(193, 81, 117, 41);
btnHelp.setVisible(true);
panel.add(btnHelp);
btnHilfeEnd = new JButton("Zurück");
btnHilfeEnd.setBounds(205, 155, 117, 41);
btnHilfeEnd.setVisible(false);
panel.add(btnHilfeEnd);
JLabel klappe = new JLabel();
klappe.setBounds(0, 0, 129, 189);
klappe.setVisible(false);
panel.add(klappe);
f.repaint();
panel.repaint();
open.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
AUSWAHL();
}
});
beginn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
@SuppressWarnings("unused")
RET ret = new RET(file, "C:\\Users\\User\\Desktop\\BearbeitetesBild.png");
} catch (Exception e2) {
JOptionPane.showMessageDialog(null, "Wählen Sie erst die zu bearbeitende Datei aus!");
}
}
});
close.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (JOptionPane.showConfirmDialog(null, "Möchten Sie das Programm beenden"," Programm beenden ", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
System.exit(0);
}
else {
f.repaint();
panel.repaint();
}
}
});
help.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
HILFE();
}
});
btnOpen.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
AUSWAHL();
}
});
btnStart.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
@SuppressWarnings("unused")
RET ret = new RET(file, "C:" + File.separator + "Users" + File.separator + "User" + File.separator + "Desktop" + File.separator + "BearbeitetesBild.png");
} catch (Exception e2) {
JOptionPane.showMessageDialog(null, "Wählen Sie erst die zu bearbeitende Datei aus!");
}
}
});
btnEnd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (JOptionPane.showConfirmDialog(null, "Möchten Sie das Programm beenden"," Programm beenden ", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
System.exit(0);
}
else{
f.repaint();
panel.repaint();
}
}
});
btnHelp.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
HILFE();
}
});
btnHilfeEnd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
pane.setVisible(false);
btnHilfeEnd.setVisible(false);
btnOpen.setVisible(true);
btnStart.setVisible(true);
btnHelp.setVisible(true);
btnEnd.setVisible(true);
}
});
}
});
}
public static void HILFE(){
pane = new JScrollPane(hilfeText, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
pane.setBounds(0, 0, 335, 149);
pane.setVisible(true);
f.add(pane);
btnHilfeEnd.setVisible(true);
hilfeText.setText("<html>Die Benutzung des AB-Cleaner's <br> ist eigentlich ganz einfach! <br><br> Schritt 1: <br>gehen Sie in das Menü Start und wählen Sie dort den <br> Menüpunkt Öffnen. Es wird sich ein Auswahldialog <br> öffnen in dem Sie die zu bearbeitende Datei auswählen <br> und mit einem Klick auf Öffnen bestätigen.<br><br><br>Schritt 2: <br><br>Nachdem der Auswahldialog geschlossen wurde <br> ist die zu bearbeitende Datei ausgewählt. <br> Nun gehen Sie erneut in das Menü Start und wählen <br> dieses Mal den Menüpunkt Start aus. <br> Das bearbeitete Bild sollte nach kurzer Wartezeit <br> auf dem Desktop zu sehen sein.<br><br><br>Schritt 3:<br><br>Falls Sie ein weiteres Bild bearbeiten möchten,<br> wiederholen Sie die Schritte 1 und 2.<br><br><br> ACHTUNG:<br> Falls Sie ein zweites mal auf Start klicken, <br> ohne ein anderes Bild auszuwählen, wird <br> das Gleiche Bild wie zuvor bearbeitet und <br> überschreibt das alte bearbeitete Bild. <br> Auch wenn Sie ein neues Bild gewählt haben <br> ist Vorsicht geboten, da das Programm eine <br> vorhandene Datei namens <br> BearbeitetesBild.png (falls vorhanden) überschreibt.<br><br>Die zugeordneten Tasten auf der Programmoberfläche <br> können natürlich auch zur Benutzung genutzt werden<br><br><br></html>");
hilfeText.setVisible(true);
btnOpen.setVisible(false);
btnStart.setVisible(false);
btnHelp.setVisible(false);
btnEnd.setVisible(false);
f.repaint();
panel.repaint();
}
public static void AUSWAHL(){
JFileChooser fc = new JFileChooser();
int state = fc.showOpenDialog(null);
if (state == JFileChooser.APPROVE_OPTION) {
file = fc.getSelectedFile();
}
else {
}
}
@Override
public void run() {
while (f.isVisible()) {
f.repaint();
panel.repaint();
}
}
}
Wie mache ich das?????
Ich kann ihn zwar implementieren aber es schaut für mich so aus als ob er
die Klicks gar nicht erkennt!
MFG
programmierer12