Abwächselnd ein Punkt und ein x anzeigen

Padawan

Mitglied
Hallo Leute,

es geht darum, dass ich ein Programm schreibe, mit dem abwchselnd ein Punkt (2 Pixel gross) und ein x (der sich in einem JLabel befindet) mittig auf einem Frame anzeigen werden soll. Beim Laden des Programms ist zuerst das x sichtbar. Nach drücken eines Start-Buttons erscheint dann der Punkt, verschwindet aber nach 2 sekunden und der x erscheint wieder. Für weitere Durchäufe verschwindet der Start-Buttons. Stattdessen hat man dann zwei Radiobuttons. Ich habs zwar soweit, dass das x mittig angezeigt wird, wenn ich jedoch den Punkt auf den JPanel adde verschwindet auch der x. Das Punkt ist dann auch nicht sichtbar.

Der Code denn ich geschrieben habe ist folgenderm:
Java:
package Aufgaben;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JRadioButton;
import javax.swing.SwingUtilities;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JLabel;

public class Aufgabe1 extends JFrame implements ActionListener {

    private JPanel contentPane;
    private JPanel checkPanel;
    private JPanel pointPanel;
   
    private JRadioButton rdbtnJa;
    private JRadioButton rdbtnNein;
    private ButtonGroup btnGroup;
   
    private JButton btnStart;
    private JLabel pointstr;
    private drawPoint point;
   
    private String status;
    private String answer;
    private int diff;
    private int sec;
    private int count;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Aufgabe1 frame = new Aufgabe1();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Aufgabe1() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 700, 300);
        contentPane = new JPanel();
        setContentPane(contentPane);
        contentPane.setLayout(null);
       
        btnStart = new JButton("Start");
        btnStart.setBounds(0, 0, 684, 23);
        contentPane.add(btnStart);
       
            checkPanel = new JPanel();
            checkPanel.setBounds(0, 229, 684, 33);
            checkPanel.setVisible(false);;
            contentPane.add(checkPanel);

            btnGroup = new ButtonGroup();
           
            rdbtnJa = new JRadioButton("Ja");
            rdbtnJa.setActionCommand("RadioButton_Ja");
            rdbtnJa.addActionListener(this);
            checkPanel.add(rdbtnJa);
            btnGroup.add(rdbtnJa);
           
            rdbtnNein = new JRadioButton("Nein");
            rdbtnNein.setActionCommand("RadioButton_Nein");
            rdbtnNein.addActionListener(this);
            checkPanel.add(rdbtnNein);
            btnGroup.add(rdbtnNein);
           
        pointPanel = new JPanel(new BorderLayout());
        pointPanel.setBackground(Color.BLACK);
        pointPanel.setBounds(0, 23, 684, 209);
        contentPane.add(pointPanel);
       
        pointstr = new JLabel("X");
        pointstr.setForeground(Color.WHITE);
        pointstr.setVerticalAlignment(JLabel.CENTER);
        pointstr.setHorizontalAlignment(JLabel.CENTER);
        pointPanel.add(pointstr, BorderLayout.CENTER);
       
        point = new drawPoint();
        point.setBackground(new Color(sec,sec,sec));
        point.setPreferredSize(new Dimension(700, 300));
        pointPanel.add(point, BorderLayout.CENTER);
        point.setVisible(false);
       
        answer = new String();
        status = new String();
        diff = 0;
        sec = 0;
        count = 0;
        run();
    }
   
    public void run() {
       
        btnStart.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                createLightPoint();
               
                btnStart.setEnabled(false);
                btnStart.setVisible(false);
               
                pointPanel.setBounds(0, 0, 684, 242);
               
            }
        });
    }
   
    private void createLightPoint() {
        btnGroup.clearSelection();
       
        point.setForeground(new Color(sec,sec,sec));
        setVisibility(true);

       
        Thread th = new Thread(new Runnable() {
            public void run() {
                try { Thread.sleep(2000); } catch (InterruptedException ex) {}
                setVisibility(false);
            }
        });
        th.start();
    }
    private void setVisibility(final boolean value) {
        if (SwingUtilities.isEventDispatchThread()) {
            pointstr.setVisible(!value);
            checkPanel.setVisible(!value);
//            point.setVisible(value);
        } else {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() { setVisibility(value); }
            });
        }
    }

    @Override
    public void actionPerformed(ActionEvent ae) {
        if((ae.getActionCommand().equals("RadioButton_Ja") || ae.getActionCommand().equals("RadioButton_Nein")) && count <= 6) {
            if(ae.getActionCommand().equals("RadioButton_Ja")) {
                if(status.equals("ueberschwellig")) {
                    diff = -20;
                } else {
                    sec = 255;
                    diff = 0;
                    status = "ueberschwellig";
                }
                answer = "JA";
               
            } else if(ae.getActionCommand().equals("RadioButton_Nein")) {
                if(status.equals("ueberschwellig")) {
                    sec = 0;
                    diff = 0;
                    status = "unterschwellig";
                } else {
                    diff = 20;
                }
                answer = "NEIN";
            }
        }
       
        System.out.println("Light Point. status: " + status + " sec: " + sec + " answer: " + answer + " diff: " + diff);
       
        createLightPoint();
    }
}
class drawPoint extends JLabel {
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);

        Graphics2D pointer = (Graphics2D) g;

        pointer.setColor(Color.WHITE);
        pointer.drawOval(0, 0, 1, 1);
//        setSize(1, 1);
      }
}
Ich hoffe ihr könnt mir helfen.

Lg Padawan
 

Blender3D

Top Contributor
Ich hoffe ihr könnt mir helfen.
Java:
import javax.swing.JFrame;

public class start {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("draw point at center");
        frame.add(new PointFlash(400, 400));
        frame.pack();
        frame.setResizable(false);
        frame.setVisible(true);
    }
}
Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;

@SuppressWarnings("serial")
public class PointFlash extends JPanel implements ActionListener {
    private Timer timer = null;
    private JButton start = new JButton("start");
    private JLabel labelX = new JLabel("X");
    private Point point = new Point();
    private int pointSize = 4;
    private Color color = Color.YELLOW;

    public PointFlash(int width, int height) {
        setLayout(null);
        setBackground(Color.DARK_GRAY);
        start.setPreferredSize(new Dimension(width / 4, start.getFont().getSize() * 2));
        labelX.setBorder(BorderFactory.createLineBorder(color));
        labelX.setHorizontalAlignment(JLabel.CENTER);
        labelX.setForeground(color);
        add(labelX);
        add(start);
        start.addActionListener(this);
        updateSize(width, height);
    }

    /**
     * Receives messages from button start and point's timer.
     */
    @Override
    public void actionPerformed(ActionEvent e) {
        Object src = e.getSource();
        if (src == start)
            showPoint(2000);
        if (src == timer)
            showX();
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        // draw point only if labelX is not visible
        if (!labelX.isVisible()) {
            g.setColor(color);
            g.fillOval(point.x, point.y, pointSize, pointSize);
        }
    }

    /**
     * Sets lableX invisible and starts a timer which calls
     * {@link #actionPerformed(ActionEvent)} after duration.
     *
     * @param duration
     */
    private void showPoint(int duration) {
        labelX.setVisible(false);
        timer = new Timer(duration, this);
        timer.start();
    }

    /**
     * Stops timer activated by {@link #showPoint(int)} and sets labelX visible.
     */
    private void showX() {
        if (timer != null)
            timer.stop();
        timer = null;
        labelX.setVisible(true);
    }

    private void updateSize(int width, int height) {
        setPreferredSize(new Dimension(width, height));
        int dimX = (int) (start.getFont().getSize() * 2);
        labelX.setBounds((width - dimX) / 2, (height - dimX) / 2, dimX, dimX);
        int startWidth = width / 5;
        start.setBounds((width - startWidth) / 2, (height - dimX), startWidth, dimX);
        point.x = width / 2;
        point.y = height / 2;
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Punkt von MouseListener hat falsche Koordinate AWT, Swing, JavaFX & SWT 2
L 2D-Grafik Frage zu Ellipse2D.Double, Abfrage, ob Punkt enthalten ist funktioniert nicht AWT, Swing, JavaFX & SWT 3
J Rectangle g.fillRec() X/Y Punkt AWT, Swing, JavaFX & SWT 5
S Punkt finden der in einem Shape liegt..? AWT, Swing, JavaFX & SWT 11
K 2D-Grafik Punkt in Eclipse AWT, Swing, JavaFX & SWT 4
S Bild von Punkt zu Punkt zeichnen AWT, Swing, JavaFX & SWT 8
B 3D-Grafik Punkt in JAVA3D darstellen AWT, Swing, JavaFX & SWT 2
L Swing struktur und nahester Punkt AWT, Swing, JavaFX & SWT 4
J Punkt-genaue Positionierung von SWT-Komponenten AWT, Swing, JavaFX & SWT 10
T JComboBox Komma in Punkt umwandeln AWT, Swing, JavaFX & SWT 2
S JTable Float Column fuegt automatisch Punkt hinzu wenn man Zahlen eingibt. AWT, Swing, JavaFX & SWT 21
X Punkt auf Geometrie AWT, Swing, JavaFX & SWT 24
G Blinkenden Punkt zeichen AWT, Swing, JavaFX & SWT 2
S Will einen Punkt zeichnen aber krieg das net hin. AWT, Swing, JavaFX & SWT 2
J JScrollPane soll automatisch zu einem punkt scrollen AWT, Swing, JavaFX & SWT 4
G Punkt um ein Rotationszentrum rotieren lassen AWT, Swing, JavaFX & SWT 15
S FAQ und JTable Tutorial.Teil.4 Punkt 5 wichtige Bemerkung AWT, Swing, JavaFX & SWT 2
T drehung um einen anderen punkt AWT, Swing, JavaFX & SWT 2
R Hässlicher Punkt bei JPopupMenu AWT, Swing, JavaFX & SWT 12
E x wert von einem vorhandenen punkt abziehen? AWT, Swing, JavaFX & SWT 3
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
W Kleine Sub-Tabelle in SpreadsheetView-Zelle anzeigen AWT, Swing, JavaFX & SWT 9
J Java GUI Dropdown-Menü anzeigen AWT, Swing, JavaFX & SWT 5
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
J BufferedImages nacheinander als Video anzeigen AWT, Swing, JavaFX & SWT 14
BananenBrötchen Swing Arraylist in jList anzeigen AWT, Swing, JavaFX & SWT 6
Lukas2904 Swing ID von WLAN Kamera anzeigen lassen. AWT, Swing, JavaFX & SWT 2
M Problem mit dem Anzeigen von Frames im Vordergrund AWT, Swing, JavaFX & SWT 5
G AWT AWT Kreise permanent anzeigen AWT, Swing, JavaFX & SWT 3
MiMa File Dateien im ListView als Name anzeigen? AWT, Swing, JavaFX & SWT 6
C Swing In der Titelleiste den Namen und den vollständigen Pfad bzw URL des aktuellen Dokuments anzeigen AWT, Swing, JavaFX & SWT 25
C Swing Aufruf der Funktion (die ein Dialog anzeigt) über Symbol anzeigen lassen AWT, Swing, JavaFX & SWT 4
O Timer in JOptionPane anzeigen AWT, Swing, JavaFX & SWT 2
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
C JavaFX Veränderungen in Scenebuilder in Eclipse als Quellcode anzeigen lassen AWT, Swing, JavaFX & SWT 11
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
J Warum kann ich die Spaltennummer in der Konsole anzeigen, diese aber nicht speichern ? AWT, Swing, JavaFX & SWT 6
VPChief Icons in 2 Jlabels Director nebeneinander anzeigen AWT, Swing, JavaFX & SWT 26
E Auf JPanel malen und davor JComponenten anzeigen AWT, Swing, JavaFX & SWT 12
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
S Text-Info in der Taskbar anzeigen AWT, Swing, JavaFX & SWT 15
R JavaFX Label oder Imageview anzeigen mit Buttonklick AWT, Swing, JavaFX & SWT 4
B ArrayList, Strings anzeigen AWT, Swing, JavaFX & SWT 1
A Fenster genau unterhalb von JTextField anzeigen AWT, Swing, JavaFX & SWT 1
N Wie kann ich zwei Grafiken in einer Oberfläche anzeigen lassen? AWT, Swing, JavaFX & SWT 8
T Swing Buffered Image anzeigen AWT, Swing, JavaFX & SWT 45
E Aktuelle Uhrzeit auf jeder Stage anzeigen lassen (JavaFX) AWT, Swing, JavaFX & SWT 2
F JavaFX Aktuelle Zeit in einem TextField anzeigen AWT, Swing, JavaFX & SWT 7
CptK Swing DropdownMenu über Panel-Grenzen hinaus anzeigen AWT, Swing, JavaFX & SWT 1
M JavaFX Bild zur ImageView in einem Kreis anzeigen. AWT, Swing, JavaFX & SWT 4
F Countdown in Label anzeigen AWT, Swing, JavaFX & SWT 14
M Loading Screen anzeigen bei Black Screen AWT, Swing, JavaFX & SWT 1
J CheckComboBox : Ausgewählte Items NICHT im Header anzeigen AWT, Swing, JavaFX & SWT 4
ralfb1105 Swing Dynamischer Graph zum anzeigen Perfomance Daten AWT, Swing, JavaFX & SWT 35
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
I Bild über FXML (ImageView, Image) anzeigen AWT, Swing, JavaFX & SWT 1
K Event Handling Über JMenuBar die diversen Panels anzeigen AWT, Swing, JavaFX & SWT 10
G JComboBox: Arrow-Button permanent anzeigen AWT, Swing, JavaFX & SWT 4
L JavaFX Animation, erst zeichnen dann anzeigen AWT, Swing, JavaFX & SWT 4
J CheckComboBox selected Items nicht anzeigen AWT, Swing, JavaFX & SWT 6
L Suchergebnisse variabel mit Button anzeigen lassen AWT, Swing, JavaFX & SWT 3
M JavaFX Ein Labeltext eine zeitlang anzeigen dann weiter machen AWT, Swing, JavaFX & SWT 3
R Swing Verändern der Ausrichtung JButton und neu anzeigen AWT, Swing, JavaFX & SWT 2
J Slider Wert anzeigen AWT, Swing, JavaFX & SWT 15
D MySQL-Tabellen in GUI anzeigen AWT, Swing, JavaFX & SWT 8
Meeresgott AWT JFileChooser bestimmte Ordner anzeigen AWT, Swing, JavaFX & SWT 16
A JScrollPane soll JPanel mit JButtons enthalten und eine Scollbar anzeigen AWT, Swing, JavaFX & SWT 1
M PDF einlesen und innerhalb Pane anzeigen AWT, Swing, JavaFX & SWT 5
S Zwei JTree, ein Model, bei Selection im ersten JTree soll der zweite die Inhlate anzeigen AWT, Swing, JavaFX & SWT 2
M JavaFX StackedBarChart y-Axis soll nur Integerwerte anzeigen AWT, Swing, JavaFX & SWT 1
MiMa PDF in Java FX anzeigen AWT, Swing, JavaFX & SWT 21
T JLabel Textinhalt von Oben anzeigen AWT, Swing, JavaFX & SWT 1
Sugan Java FX Verzeichnisüberwachung -> Bilder auf GUI anzeigen AWT, Swing, JavaFX & SWT 4
Cromewell JavaFX Nur bestimmten Teil eines Canvas rendern und anzeigen AWT, Swing, JavaFX & SWT 2
C Benutzername in GUI eingeben und nach Spiel neues Fenster Benutzername wieder anzeigen AWT, Swing, JavaFX & SWT 1
M Gui-Form alle Labels anzeigen AWT, Swing, JavaFX & SWT 4
J Swing Zeichenfläche im JPanel des Haupfenster anzeigen lassen AWT, Swing, JavaFX & SWT 4
Z Swing Variable eines Objekt aus Hashmap in JList anzeigen AWT, Swing, JavaFX & SWT 1
beatles Swing JTextField - Game Status aus Array anzeigen AWT, Swing, JavaFX & SWT 3
M Java FX Immer aktuelle Mausposition anzeigen AWT, Swing, JavaFX & SWT 6
J Eigene Klasse auf Basis Textfield in SceneBuilder anzeigen AWT, Swing, JavaFX & SWT 4
L wie Layout-Grid in JXPanel anzeigen? AWT, Swing, JavaFX & SWT 5
JavaMachtMichFertig JavaFX Gui - Löschbutton in Tabelle anzeigen, die mittels MySQL Abfrage gefüllt wird AWT, Swing, JavaFX & SWT 5
stylegangsta JButton Transparent anzeigen AWT, Swing, JavaFX & SWT 9
F JavaFX JavaFX HTMLEditor-Eingabe in Textarea als HTML anzeigen AWT, Swing, JavaFX & SWT 2
V JFreeChart: Tooltip auf Knopfdruck anzeigen AWT, Swing, JavaFX & SWT 2
K Swing JScrollPane - JScrollBar anzeigen, wenn Frame verkleinert wird AWT, Swing, JavaFX & SWT 3
D Swing Idealgewicht anzeigen per Radiobuttonaktivierung AWT, Swing, JavaFX & SWT 8
J JavaFX Tooltip Verzögerung beim ersten Anzeigen AWT, Swing, JavaFX & SWT 4
D JButton - Nur Icon anzeigen / transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
I JTable: Doppelklick auf Table soll neues Fenster öffnen und Daten aus JTable anzeigen AWT, Swing, JavaFX & SWT 4
B Swing JXMapKit Mausemove in Label anzeigen AWT, Swing, JavaFX & SWT 0
J JavaFX TextArea dynamisch Icon im Background anzeigen AWT, Swing, JavaFX & SWT 2
D Swing Erstes Item einer JCombobox in JTable anzeigen AWT, Swing, JavaFX & SWT 2
V Wie kann ich die Schrift in Java vollkommen anzeigen AWT, Swing, JavaFX & SWT 1
F Menüs in allen Fenstern anzeigen AWT, Swing, JavaFX & SWT 12
J 2D-Grafik Windows Blue-Screen nach anzeigen eines Bildes in Java AWT, Swing, JavaFX & SWT 10
S (Swing)Vollbild anzeigen unter Linux/Mac AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben