Hallo
Also mein Problem ist folgendes in meinem Programm habe ich einen mouseListiner der Aktiviert wird, wenn ein Button (Buttonxstart) gedrückt wird dadurch verschwindet der Hintergrund und Zwei Button welche zuvor noch auf dem Jframe sehbar waren jedoch soll, nachdem der Jframe dann komplett weiß ist ein Viereck in einer Draw klasse erstellt worden welche dann nach unten "Fällt" (das mit dem Fallen hab ich in einem separaten Programm getestet und das Funktioniert) Problem dabei ist das aus irgendeinem Grund der Hintergrund und die Buttons erst verschwinden sobald das Viereck schon unten ist wie kann ich das beheben.
[CODE lang="java" title="Gui"]package Pack;
import javax.swing.*;
public class Gui {
public Gui(){
Var.jf = new JFrame();
Var.jf.setSize(Var.screenwidth, Var.screenheight);
Var.jf.setTitle("Test");
Var.jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Var.jf.setResizable(false);
Var.jf.setLocationRelativeTo(null);
Var.jf.setLayout(null);
Var.Buttonxstart = new JButton();
Var.Buttonxstart.setBounds(300,220,380,120);
Var.Buttonxstart.setIcon(new ImageIcon("Bilder/Startbuttontest.png"));
Var.Buttonxstart.addMouseListener(new MouseListinerpressed()) ;
Var.jf.add(Var.Buttonxstart);
Var.Buttonxstart.setBorderPainted(false);
Var.Buttonxclose = new JButton("Exit");
Var.Buttonxclose.setBounds(300,440,380,120);
Var.Buttonxclose.setIcon(new ImageIcon("Bilder/Schließenbuttontest.png"));
Var.Buttonxclose.setBorderPainted(false);
Var.Buttonxclose.addMouseListener(new MouseListinerpressed()) ;
Var.jf.add(Var.Buttonxclose);
ImageIcon imgbackground = new ImageIcon("Bilder/MenuHintergrund.jpg");
Var.backgroundstart = new JLabel("",imgbackground,JLabel.CENTER);
Var.backgroundstart.setBounds(0,0,1000,1000);
Var.jf.add(Var.backgroundstart);
Var.jf.setVisible(true);
}
}
[/CODE]
[CODE lang="java" title="Player"]package Pack;
public class Player {
public void player() {
while(Var.Playerheight<=885) {
Var.playertest = Var.Playerheight / 10 +1;
if(Var.Playerarr[10][Var.playertest]== 0) {
Var.Playerheight++;
Draw draw = new Draw();
draw.setBounds(0,0, Var.screenwidth, Var.screenwidth);
draw.setVisible(true);
Var.jf.add(draw);
}
}
}}[/CODE]
[CODE lang="java" title="Draw"]package Pack;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JLabel;
public class Draw extends JLabel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
g.fillRect(100, Var.Playerheight, 50,75 );
repaint();
}
}
[/CODE]
[CODE lang="java" title="Var"]package Pack;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Var {
static JFrame jf;
static int screenheight = 1000;
static int screenwidth = 1000;
static JButton Buttonxstart;
static JButton Buttonxclose;
static JLabel backgroundstart;
static JLabel startButtonimg;
static int[][]Playerarr = new int [100][100];
static int Playerheight ;
static int playertest;
}
[/CODE]
[CODE lang="java" title="MouseListiner"]package Pack;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
public class MouseListinerpressed implements MouseListener {
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
if(e.getSource()== Var.Buttonxstart) {
Var.Buttonxstart.setIcon(new ImageIcon("Bilder/Startbuttontestpressed.png"));
}
if(e.getSource()== Var.Buttonxclose) {
Var.Buttonxclose.setIcon(new ImageIcon("Bilder/Schließenbuttontestpressed.png"));
}}
@Override
public void mouseReleased(MouseEvent e ) {
if(e.getSource()== Var.Buttonxstart) {
System.out.println("Buttonxstart");
Var.Buttonxclose.setEnabled(false);
Var.Buttonxclose.setVisible(false);
Var.Buttonxstart.setEnabled(false);
Var.Buttonxstart.setVisible(false);
Var.backgroundstart.setVisible(false);
Var.backgroundstart.setEnabled(false);
}
if(e.getSource()== Var.Buttonxclose) {
System.exit(0);
}
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
[/CODE]
Also mein Problem ist folgendes in meinem Programm habe ich einen mouseListiner der Aktiviert wird, wenn ein Button (Buttonxstart) gedrückt wird dadurch verschwindet der Hintergrund und Zwei Button welche zuvor noch auf dem Jframe sehbar waren jedoch soll, nachdem der Jframe dann komplett weiß ist ein Viereck in einer Draw klasse erstellt worden welche dann nach unten "Fällt" (das mit dem Fallen hab ich in einem separaten Programm getestet und das Funktioniert) Problem dabei ist das aus irgendeinem Grund der Hintergrund und die Buttons erst verschwinden sobald das Viereck schon unten ist wie kann ich das beheben.
[CODE lang="java" title="Gui"]package Pack;
import javax.swing.*;
public class Gui {
public Gui(){
Var.jf = new JFrame();
Var.jf.setSize(Var.screenwidth, Var.screenheight);
Var.jf.setTitle("Test");
Var.jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Var.jf.setResizable(false);
Var.jf.setLocationRelativeTo(null);
Var.jf.setLayout(null);
Var.Buttonxstart = new JButton();
Var.Buttonxstart.setBounds(300,220,380,120);
Var.Buttonxstart.setIcon(new ImageIcon("Bilder/Startbuttontest.png"));
Var.Buttonxstart.addMouseListener(new MouseListinerpressed()) ;
Var.jf.add(Var.Buttonxstart);
Var.Buttonxstart.setBorderPainted(false);
Var.Buttonxclose = new JButton("Exit");
Var.Buttonxclose.setBounds(300,440,380,120);
Var.Buttonxclose.setIcon(new ImageIcon("Bilder/Schließenbuttontest.png"));
Var.Buttonxclose.setBorderPainted(false);
Var.Buttonxclose.addMouseListener(new MouseListinerpressed()) ;
Var.jf.add(Var.Buttonxclose);
ImageIcon imgbackground = new ImageIcon("Bilder/MenuHintergrund.jpg");
Var.backgroundstart = new JLabel("",imgbackground,JLabel.CENTER);
Var.backgroundstart.setBounds(0,0,1000,1000);
Var.jf.add(Var.backgroundstart);
Var.jf.setVisible(true);
}
}
[/CODE]
[CODE lang="java" title="Player"]package Pack;
public class Player {
public void player() {
while(Var.Playerheight<=885) {
Var.playertest = Var.Playerheight / 10 +1;
if(Var.Playerarr[10][Var.playertest]== 0) {
Var.Playerheight++;
Draw draw = new Draw();
draw.setBounds(0,0, Var.screenwidth, Var.screenwidth);
draw.setVisible(true);
Var.jf.add(draw);
}
}
}}[/CODE]
[CODE lang="java" title="Draw"]package Pack;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JLabel;
public class Draw extends JLabel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
g.fillRect(100, Var.Playerheight, 50,75 );
repaint();
}
}
[/CODE]
[CODE lang="java" title="Var"]package Pack;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Var {
static JFrame jf;
static int screenheight = 1000;
static int screenwidth = 1000;
static JButton Buttonxstart;
static JButton Buttonxclose;
static JLabel backgroundstart;
static JLabel startButtonimg;
static int[][]Playerarr = new int [100][100];
static int Playerheight ;
static int playertest;
}
[/CODE]
[CODE lang="java" title="MouseListiner"]package Pack;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
public class MouseListinerpressed implements MouseListener {
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
if(e.getSource()== Var.Buttonxstart) {
Var.Buttonxstart.setIcon(new ImageIcon("Bilder/Startbuttontestpressed.png"));
}
if(e.getSource()== Var.Buttonxclose) {
Var.Buttonxclose.setIcon(new ImageIcon("Bilder/Schließenbuttontestpressed.png"));
}}
@Override
public void mouseReleased(MouseEvent e ) {
if(e.getSource()== Var.Buttonxstart) {
System.out.println("Buttonxstart");
Var.Buttonxclose.setEnabled(false);
Var.Buttonxclose.setVisible(false);
Var.Buttonxstart.setEnabled(false);
Var.Buttonxstart.setVisible(false);
Var.backgroundstart.setVisible(false);
Var.backgroundstart.setEnabled(false);
}
if(e.getSource()== Var.Buttonxclose) {
System.exit(0);
}
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
[/CODE]
Zuletzt bearbeitet: