Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Panel nicht sofort sichtbar....

Empfohlene Antworten

Veröffentlicht

Ich habe hier ein kleines prob.... Und zwar habe ich frame, in dieses frame packe ich zwei panel und mache eines sichtbar - klappt auch wunderbar. Nun möchte ich auf ein event hin dieses panel unsichtbar machen und das andere sichtbar - das klappt leider nicht... das zweite panel wird erst sichtbar wenn ich das fenster mit der hand (automatisch verändern klappt auch nicht) größer oder kleiner mache... Woran liegt das?

Hier mal der code...:

import java.awt.Button;

import java.awt.Checkbox;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.Frame;

import java.awt.GridLayout;

import java.awt.Label;

import java.awt.Panel;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

public class Dialog1 extends Frame implements ActionListener, ItemListener

{

Button bt1;

Button bt3;

TextField Pw1;

TextField Pw2;

Panel panel;

Frame rahmen;

Button bt2;

Checkbox Cbox1;

Checkbox Cbox2;

Panel panel2;

/*****************

* Konstruktor *

****************/

public Dialog1()

{

setTitle("Login");

setSize(200, 200);

// Neue Panel erzeugen + panel hinzufuegen und sichtbar machen

panel = new Panel();

panel2 = new Panel();

add(panel);

panel.setVisible(true);

// Layout Manager einrichten

panel.setLayout(new FlowLayout());

panel2.setLayout(new GridLayout(5, 2));

// Buttons und Fields zum Panel hinzufuegen

panel.add(new Label("Name"));

panel.add(Pw1 = new TextField("test", 20));

panel.add(new Label("Passwort"));

panel.add(Pw2 = new TextField("test", 20));

Pw2.setEchoChar('*');

panel.add(bt1 = new Button("Test"));

// Buttons und Fields zum Panel2 hinzufuegen

panel2.add(

new Label("Ist die Archivierung der Scan-Belege beendet?"));

panel2.add(Cbox1 = new Checkbox());

panel2.add(new Label("Ist der Interpreter heruntergefahren?"));

panel2.add(Cbox2 = new Checkbox());

panel2.add(bt2 = new Button("Connect"));

bt2.setVisible(false);

// ActionListener hinzufuegen

bt1.addActionListener(this);

bt2.addActionListener(this);

Cbox1.addItemListener(this);

Cbox2.addItemListener(this);

// WindowListener hinzufuegen

addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent we)

{

System.exit(0);

}

});

}

//Button Event

public void actionPerformed(ActionEvent ae)

{

Object quelle = ae.getSource();

if (quelle == bt1)

{

String a = Pw1.getText();

String b = Pw2.getText();

String c = "test";

String d = "test";

if (a.equals© && b.equals(d))

{

// altes panel unsichtbar machen

panel.setVisible(false);

panel.removeAll();;

//größe anpassen und neus panel hinzufügen und sichtbar machen

setSize(280,200);

add(panel2);

panel2.setVisible(true); //??

this.repaint(); //??

panel2.repaint(); //??

}

else

{

bt1.setLabel("BAD");

}

panel2.setVisible(true); //??

this.repaint(); //??

panel2.repaint(); //??

}

if (quelle == bt2)

{

bt2.setBackground(Color.red);

bt2.setLabel("Verarbeite");

connect();

}

}

//Chkbox Event

public void itemStateChanged(ItemEvent e)

{

if (Cbox1.getState() == true && Cbox2.getState() == true)

{

bt2.setVisible(true);

}

}

public void connect()

{

try

{

Client Cl = new Client();

}

catch (Exception e)

{

e.printStackTrace(System.out);

}

}

/****************

* Startpunkt *

***************/

public static void main(String[] args)

{

Frame rahmen = new Dialog1();

rahmen.setVisible(true);

}

}

Hey,

das war´s schon! Danke! Aber woher das Prob nun kam verstehe ich immer noch nicht - die größe des Fensters war doch mehr als ausreichend! Und auch wenn ich es kleiner mache wird der Inhalt doch immer noch angezeigt!

Genau kann ich dir das auch nicht erklären.

Ich weiß nur das ich meinen Fenstern auch immer die pack Methode aufgerufen habe, wenn ich da irgendwelche Größen geändert habe oder Sachen unsichtbar gemacht habe.

Aber man muss ja auch nicht alles verstehen. Hauptsache ist doch das es funktioniert

:D

mit der methode setVisible() setzt du nur ob es sichtbar sein soll oder nicht. Aber wie Pinhead schon sagte:

Original geschrieben von Pinhead

Versuche doch mal

this.pack();

. Bei dieser Methode nehmen sich die Objekte soviel Platz wie sie brauchen und das Fenster wird neu gezeichnet. Vielleicht hilft das.

zeichnet setVisible() das Fenster nicht neu sondern pack() tut das für dich. Du kannst pack() auch weglassen, dann musst du dir eine andere Methode suchen, die dir das Fenster neu zeichnet.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.