Programmieren – die besten Beiträge

Java auf Button-Eingabe warten lassen?

In meinem Java-Programm wird an einer Stelle ein neuer JDialog erstellt und ich möchte, dass die Klasse, über die den Dialog aufgerufen wird, solange wartet, bis in dem Dialog ein Button angeklickt wird.

Methode der Klasse Spiel:

public boolean handeln(Spieler aktuellerSpieler, Spieler Partner) {
  if (aktuellerSpieler == Partner) {
    JOptionPane.showMessageDialog(Spiel.this, "Sie können nicht mit sich selber handeln!", "FEHLER", JOptionPane.WARNING_MESSAGE);
    return false;
  }

  setVisible(false);
  Handel dialog = new Handel(aktuellerSpieler, Partner, Spiel.this);

  // Warte auf Button Eingabe in dialog
  return true;
}

Code der Dialog-Klasse:

public Handel(Spieler player1, Spieler player2, Spiel Instanz) {
  setVisible(true);

  setBounds(100, 100, 1030, 471);
  getContentPane().setLayout(new BorderLayout());
  contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
  getContentPane().add(contentPanel, BorderLayout.CENTER);
  contentPanel.setLayout(null);

  {
    JPanel buttonPane = new JPanel();
    buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
    getContentPane().add(buttonPane, BorderLayout.SOUTH);

    {
      JButton okButton = new JButton("BESTÄTIGEN!");
      buttonPane.add(okButton);
      getRootPane().setDefaultButton(okButton);
    }
  
    {
      JButton cancelButton = new JButton("Exit");
      buttonPane.add(cancelButton);
      cancelButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          Handel.this.dispose();
          Instanz.setVisible(true);

          // Auf diesen Button soll gewartet werden.
        }
      });
    }
  }
}
Computer, programmieren, Java, Informatik

Wie kann ich in einem dir alle Bilder einlesen, Java?

Hier mein Code:

import java.awt.Component;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;

public class Read extends Component {

    public static void main(String[] foo) {
        new Read();
    }

    public void printPixelARGB(int pixel, int i, int j) {
        int alpha = (pixel >> 24) & 0xff;
        int red = (pixel >> 16) & 0xff;
        int green = (pixel >> 8) & 0xff;
        int blue = (pixel) & 0xff;
        System.out.println("argb: " + alpha + ", " + red + ", " + green + ", " + blue);
        int x = ((alpha-(765-red-green-blue)/3)<<24) + (red<<16) + (green<<8) + blue;
        double y = x < 0 ? (1.0/(x))/-1 : x > 0 ? 1.0/x : 0;
        System.out.println(y);
    }

    private void marchThroughImage(BufferedImage image) {
        int w = image.getWidth();
        int h = image.getHeight();
        System.out.println("width, height: " + w + ", " + h);

        for (int i = 0; i < h; i++) {
            for (int j = 0; j < w; j++) {
                System.out.println("x,y: " + j + ", " + i);
                int pixel = image.getRGB(j, i);
                printPixelARGB(pixel, i, j);
                System.out.println("");
            }
        }
    }

    public Read() {
        try {
            // get the BufferedImage, using the ImageIO class
            BufferedImage image =
                    ImageIO.read(this.getClass().getResource("3.png"));
            marchThroughImage(image);
        } catch (IOException e) {
            System.err.println(e.getMessage());
        }
    }
} 

Meine Frage... Bei der Zeile mit "3.png" soll stehen, dass alle png Files einer dir z.b. C:\Users\xy\pngdir eingelesen werden... Wie macht man das?

LG

PC, Computer, Technik, programmieren, Java, Expertenthemen, Informatik, Technologie, Expertenfragen, Programmcode

Meistgelesene Beiträge zum Thema Programmieren