Hintergrund in Java GUI?

Heyho,

Ich möchte gerne in meiner GUI einen Hintergrund einfügen, da es sonst so trostlos wirkt. Es soll das Bild "GameBackground.jpg" genutzt werden.

Hier ist der Code:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*; 
import ch.aplu.turtle.*;

/**
 *
 * Ein Spiel mit GUI
 *
 * @version 1.0 vom 19.05.2023
 * @abraham_oez 
 */

public class frame extends JFrame {
  private Button bSpielstarten1 = new Button();
  // Anfang Attribute
  private Button bHowtoplay1 = new Button();
  private Button bCopyright1 = new Button();
    private JMenu jMenuBar1_File = new JMenu("Spiel");
      private JMenu jMenuBar1_File_New = new JMenu("Neues Spiel");
  
  private JLabel Label1 = new JLabel();
  // Ende Attribute
  public frame() { 
    // Frame init
    super();
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 746; 
    int frameHeight = 562;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setTitle("Games by Abie D. Tate");
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
    setUndecorated(false);
    cp.setBackground(new Color(0xC0C0C0));
    // Anfang Komponenten
    
    bSpielstarten1.setBounds(288, 104, 176, 48);
    bSpielstarten1.setLabel("Spiel starten");
    bSpielstarten1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        bSpielstarten1_ActionPerformed(evt);
      }
    });
    cp.add(bSpielstarten1);
    bHowtoplay1.setBounds(285, 224, 176, 48);
    bHowtoplay1.setLabel("How to play");
    bHowtoplay1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        bHowtoplay1_ActionPerformed(evt);
      }
    });
    cp.add(bHowtoplay1);
    bCopyright1.setBounds(288, 352, 176, 48);
    bCopyright1.setLabel("Lizenzen");
    bCopyright1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        bCopyright1_ActionPerformed(evt);
      }
    });
    cp.add(bCopyright1);

    // Ende Komponenten
    setVisible(true);
  }  
  
  
  
  public static void main(String[] args) {
    new frame();
  }  
  
  // Anfang Methoden
  public void bSpielstarten1_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    
  } 

  public void bHowtoplay1_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    
  }  
  
  //Nachdem der Button 'Copyright' gedrueckt wurde, wird die Klasse 'CopyrightFrame' geoeffnet in einem neuen Fenster
  public void bCopyright1_ActionPerformed(ActionEvent evt) {
    
    if (evt.getSource() == bCopyright1) {
      CopyrightFrame copyrightFrame = new CopyrightFrame();
    } 
    
  }  

} 

Java, Programmiersprache, Swing, Java Swing
Wie ändere ich die Größe der einzelnen JPanels bei einem BorderLayout in Java?

Hallo.

Ich habe in Java einen JFrame erstellt in dem ein JPanel ist, indem sich ein anderes JPanel (mit BorderLayout) befindet das 2 JPanels enthält.

Also so etwa:

JFrame/JPanel/JPanel(BL)
              > JPanel(NORTH)
              > JPanel(SOUTH)

(BL = BorderLayout)

Ich will das die 2 JPanels die in den BL sind so angeordnet sind wie das Spielfeld und das Inventar bei den Zelda NES Spiel aus den 90ern (Bild unten).

Das nördliche JPanel(NORTH) soll das Inventar sein während das südliche(SOUTH) das Spielfeld sein soll auf dem sich das eigentliche Geschehen mit dem Spieler, NPCs, Map usw. abspielt.

Jetzt ist jedoch das Problem dass das JPanel dass das Spielfeld ist fast den ganzen Platz einnimmt:

Spielfeld Panel (Schwarz). Inventar Panel (Grün)

Ich will jedoch das es ungefähr so angeordnet ist:

Wie zu sehen ist, ist bei dem Zelda Spiel das Inventar deutlich größer, während es bei mir eher wie ein Strich aussieht.

Ich habe die Größe des Spielfeld Panels schon definiert, die des Inventar Panels auch.

Ich habe die beiden Panels (Spielfeld und Inventar) in das JP mit dem BL gemacht, welches ich einen anderen JPanel hinzugefügt habe, welches sich im JFrame befindet.

Dann habe ich das JFrame der Größe seiner JPanels eingeglichen mit frame.pack()

(Mein JFrame heißt frame)

Ich habe versucht die Größe der beiden Panels auf verschiedenste Art und Weise zu ändern, jedoch ohne Erfolg.

Ich würde mich freuen wenn jemand eine Lösung dafür kennt.

Danke im voraus.

Bild zum Beitrag
programmieren, Java, Eclipse, Programmiersprache, Swing, Java Swing
Java Ellipse aus Linien zeichnen - Fehler wegen nur ganzzahlig möglichen Winkeln?

Hallo,

ich möchte in Java einen Farbkreis in Form eines Ellipse zeichnen; dafür zeichne ich Linien verschiedener Farben vom Mittelpunkt aus in einem bestimmten Winkel zum Endpunkt, der auf der imaginären Form einer Ellipse liegt. So weit so gut, das funktioniert auch.

Mein Problem allerdings ist, dass die Farbkreis-Ellipse nach dem Zeichnen ganz und gar nicht so aussieht, wie sie aussehen sollte:

Ich vermute, dass es daran liegt, dass die Berechnungen Gleitkommazahlen ergeben, die ich aber ganzzahlig runden muss, damit ich damit das Ende einer Linie als Punkt kennzeichnen kann. Dadurch liegen die Linien womöglich an manchen Stellen aufeinander und an anderen Stellen existieren keine Linien (ist das so?).

Hier der Code zum Definieren der Linien mit Farbe und Index:

Line[] lines = new Line[3*255]; 
int[] color = {255,0,0}; 
for(int i=0; i<3; i++) 
   for(int j=0; j<255; j++){ 
      color[i]--; color[(i+1)%3]++; 
      lines[i*255 + j] = new Line(i*255 + j + 1, new Color(color[0], color[1], color[2])); 
} 

Zeichne ich die Linien mit aufsteigender Länge nebeneinander, funktioniert der Farbübergang so wie geplant - nur die Farbellipse macht Probleme.

Hier der Konstruktor der Line-Klasse (mehr enthält sie mom. noch nicht):

Line(int index, Color color){
	this.index = index;
	this.color = color;
	this.angle = this.index*360./765; //3*255 Farben
    int a = Ellipse.a, b = Ellipse.b;
    double x = (a*b/Math.sqrt(b*b+Math.pow(a*Math.tan(angle), 2))),
           y = x*Math.tan(angle);
    if(angle > 90 && angle < 270) x = -x;
    this.end = new Point((int) x, (int) y);
    this.length = Point.distance(0, 0, end.x, end.y);
}

Die paint-Methode der Frame Klasse (ja, ich programmiere in Swing, die Ellipse ist eher ein quick&dirty-Projekt):

@Override public void paint(Graphics g){
	for(int i=0; i<3*255; i++){ 
       g.setColor(lines[i].color); 
       g.drawLine(m.x, m.y, lines[i].end.x+m.x, lines[i].end.y+m.y); 
    } 
} 

Warum sieht die gezeichnete Ellipse so grausam im Gegensatz zum Dreieck aus und separiert optisch so stark zwischen rot und blau? Woran liegt das bzw. wie kann ich es beheben?

Vielen Dank schon mal im Voraus.

LG

Bild zum Beitrag
Computer, Mathematik, zeichnen, programmieren, Java, Swing, Ellipse
Suche Song 40er - 60er, Swing, Rock'n'Roll oder ähnliches?

Hallo Allerseits,

heute habe ich die ganze Zeit schon einen Ohrwurm und weiß nicht, wie das Lied heißt. Es ist rein von der Stimmung her sehr fröhlich und man hört eine absteigende Tonfolge aus sieben Tönen, der achte geht dann wieder etwas höher und dann wiederholt sich das Ganze. Ich weiß nicht einmal, ob in dem Lied gesungen wird oder nicht. Vielleicht ist es rein instrumental.

edit: Ich habe die Melodie nun gepfiffen und auf soundcloud hochgeladen. Wer möchte, kann sich das dort anhören. Vorsicht: Mein Gepfeife klingt ziemlich hoch und schrill. Vielleicht die Lautstärke vorher ein bisschen runterdrehen. Ein Ton klingt ziemlich schief, deswegen habe ich versucht, die Melodie noch zweimal zu wiederholen und hoffe nun, dass es einigermaßen erkennbar ist. Hier der Link:

https://on.soundcloud.com/Zknks

Im Grunde genommen ist es, wenn ich das richtig erkannt habe, einfach die Tonleiter rückwärts von C nach D und dann drei Töne höher, also G und dann das Selbe wieder von vorne.

Zeitlich würde ich es zwischen die 40er und 60er einordnen. Wahrscheinlich nicht älter und wahrscheinlich auch nicht neuer. Das Instrument, das die absteigende Tonfolge spielt, ist vermutlich ein Bass. Kontrabass unter Umständen, sicher bin ich mir dabei jedoch nicht. Vom Tempo her ist es mittelmäßig. Nicht langsam, aber auch nicht schnell.

Es kann genretechnisch in die Swing-Ära passen, vielleicht aber auch Rock'n'Roll oder eine andere Musikrichtung aus dieser Zeit.

Es ist verhältnismäßig bekannt und die Melodie ist vielleicht nur die Hintergrundmelodie zu der sich dann eine Hauptmelodie mit oder ohne Gesang gesellt, aber auch da bin ich mir nicht sicher.

Ich weiß, dass das sehr wenige Informationen sind, aber möglicherweise hat jemand von Euch ja eine Idee. Ich habe bereits in die google-Musikerkennungsapp gesummt und gepfiffen, aber es wurde nicht erkannt. Auch habe ich die Melodie auf mein Smartphone aufgenommen und wollte die Sounddatei auf den Computer übertragen, allerdings hat mein Phone wohl gerade einen Wackelkontakt und wird vom Computer nicht erkannt. Ein Mikrophon an meinem Computer habe ich derzeit leider auch nicht.

Nennt gerne alles, was Euch dazu einfällt. Also eine absteigende Tonfolge mit sieben Noten, danach wieder eine etwas höhere Note und dann wiederholt sich das Ganze. Ich entschuldige mich für die wenigen Daten und freue mich auf Eure Antworten und bedanke mich schon mal im Voraus.

Grüße

Geronimobosch

Musik, Song, Lied, 50er, Jazz, Rock 'n' Roll, Swing, 1960er, 40er
Erzählende Rock, Metal & Alternative Lieder?

Ich bin mal wieder auf der Suche nach Musik, wie immer Dinge, die man nicht so leicht finden kann.

Dieses mal suche ich Wave & Gothic, Rock- und Metaltiteln, die eine Geschichte erzählen und dabei musikalisch (Melodie und Instrumente), textlich und am besten auch Soundeffektmäßig die Geschichte hörbar machen (so wie bei Empire of the Clouds von Iron Maiden, da passen die Instrumente, Melodie und Text zur Geschichte des Luftschiffs, nur die Geräusche fehlen). Dementsprechend muss das Lied vor allem atmosphärisch sein. Dabei darf jedes Subgenre und Crossover bedient werden. Die Geschichte darf aus so ziemlich jedem Genre sein (Horror, Fantasy, Steampunk, Abenteuer, Science-Fiction und und und).

Kurzum: ich suche sozusagen ein „Hörspiel“ in Liedform mit einem Text wie in einer Ballade (nicht Liedart sondern Gedichtform)

P.s.: Wenn ihr ansonsten absolut passende Lieder aus anderen Genre (egal welches) habt, dürft ihr sie gerne auch posten!

... Im Electro/Techno-basierten Bereich kann ich mir das auch gut vorstellen, dann aber weniger monoton und melodischer und mit mehr Text als in dem Genre, dafür aber mit vielen Effekten. Im Cyber und Sci-Fi Bereich stelle ich mir das sehr atmosphärisch vor....

Musik, Rock, Song, Liedsuche, Techno, Pop, Lied, Film, Celtic, Hip-Hop, Emo, Horror, Rap, Alternative, Unterhaltung, Titel, Metal, Schlager, Fantasy, Abenteuer, Audiobook, Band, Blues, Folk, Gedicht, Gothic, Grufti, Hippie, Hörbuch, Hörspiel, Indie, Jazz, Klassik, Literatur, Lyrik, Mittelalter, mukke, Punk, Punkrock, Rocker, Schwarze Szene, Science-Fiction, Steampunk, Subkultur, Swing, Volksmusik, Wave, biker, Metalhead, Neue Deutsche Härte, Post Punk, SynthPop
JPanel und JButton verschieben?
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.event.*;
public class Engine extends Thread {
  public JFrame frame = new JFrame("drawWorld");
  public JPanel panel;
  public JButton startGame = new JButton("START");
  public JLabel highscore = new JLabel("HIGHSCORE: ");
  public JLabel score = new JLabel("CURRENT SCORE: ");
  public int shift = 0;
  public int bounce = 0;
  public Player player;
  public Engine(Player pPlayer) {
    frame.setExtendedState(frame.getExtendedState() | JFrame.MAXIMIZED_BOTH);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    this.player = pPlayer;
  }

  public void startdraw(List blocks) {
    panel = new JPanel() {
      @Override
      protected void paintComponent(Graphics g) {

        List<Block> world = blocks.copy(); //Kopiert das Listenobjekt, damit es nicht zu einem doppeltem Zugriff kommt

        super.paintComponent(g);
        BufferedImage buffer = new BufferedImage(frame.getWidth(), frame.getHeight(), BufferedImage.TYPE_INT_ARGB);
        Graphics bufferGraphics = buffer.getGraphics();
        player.isUpdating = true;
        if (player.dead == false) {
          bufferGraphics.drawImage(player.texture, (int)frame.getWidth() / 2 - 75, (int)frame.getHeight() / 2, 150, 150, null);
          world.toFirst();
          while (world.getContent() != null) {
            Block currentDrawing = (Block)world.getContent();
            if (currentDrawing != null) {
              bufferGraphics.drawImage(currentDrawing.texture, (int)currentDrawing.x*100 - shift + ((int)frame.getWidth() - 1000) / 2 - 350, (int)currentDrawing.y*100 + bounce + 45 + ((int)frame.getHeight() - 1000) / 2, (int)100, (int)100, null);
            }
            world.next();
          }
        }
        score.setText("CURRENT SCORE: " + player.world.score);
        highscore.setText("HIGHSCORE: " + player.world.highscore);
        g.drawImage(buffer, 0, 0, null);
        player.isUpdating = false;
      }
    };

    startGame.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
          player.reset();
          player.dead = false;
          panel.remove(startGame);
          frame.requestFocusInWindow();
          frame.repaint();
        }
      });

    frame.add(panel);
    panel.add(this.highscore);
    panel.add(this.score);

    if (player.dead) {
      panel.add(this.startGame);
    }
    frame.setVisible(true);
  }

  public void update() {
    frame.repaint();
  }
}

Hallo Leute,

ich habe mich gefragt, wie ich die Objekte this.highscore, this.score und this.startGame verschieben kann. Ich habe schon mehrere Möglichkeiten ausprobiert. setBounds, setHorizontal / VerticalAlignment haben nicht funktioniert. Woran liegt das?

Danke im Vorraus!

Spiele, App, Programm, Java, Code, Programmiersprache, Swing, game-development, Java Swing
Kennt/mögt ihr Oberkrainer-Musik?

Hallo,

mich würde mal interessieren, wie bekannt bzw. beliebt diese Musikrichtung auf Gutefrage ist.

Oberkrainer ist wahnsinnig vielseitig und musikalisch teilweise sehr anspruchsvoll, deshalb sollte man da nicht irgendein ein Stück hören und die ganze Musikrichtung abstempeln. Oftmals gibt es Elemente aus der österreichischen und slowenischen Volksmusik, aber auch aus dem Jazz und Swing. Vor allem in Slowenien hat die Musik auch große Einflüsse in die Popmusik.

Als größte Vertreter der verschiedenen Stilrichtungen würde ich mal folgende Gruppen/Stücke anbringen:

Klassische, ursprüngliche Oberkrainer-Musik. Beispiele wären natürlich die Original Oberkrainer, das Oberkrainer Sextett, die Alpenoberkrainer gehen in eine ähnliche Richtung, heutzutage z. B. Saso Avsenik und seine Oberkrainer. Große Einflüssen aus der slowenischen Volksmusik und aus dem Jazz und Swing (Gitarrist der Original Oberkrainer war ursprünglich Jazzer). Slavko Avsenik hat über 1000 Stücke komponiert, es ist also unmöglich alleine hier schon die ganze Vielfalt aufzuzeigen, aber mal das wohl bekannteste Stück, das Trompetenecho, und ein Walzer-Medley:

https://open.spotify.com/intl-de/track/17Yp3S5o8VtcTG3Hdnbz9z?si=a0d99bcdac934e09

https://open.spotify.com/intl-de/track/1OUXjQve1U7Z3IBwZoUyvH?si=b1bb8dd68bd347ba

Später kamen dann auch österreichische Gruppen hinzu, wegen der Nähe zu Slowenien vor allem aus der Steiermark. In den 70er bis 90er Jahren schossen die wegen der extremen Beliebtheit des Genres wie Pilze aus dem Boden. Ich würde diesen Stil eher als fetziger, sauberer, moderner bezeichnen, im Gegensatz zur eher wohligen und urtümlichen slowenischen Oberkrainermusik. Oftmals sind die Übergänge aber fließend, das ist schwierig das so zu trennen. Bekannte Vertreter wären z. B. die Mooskirchner, Grazer Spatzen, Lechner Buam oder heutzutage in modernerem Stil Die Lungauer. Als Beispiele "Julia" von den Mooskirchnern und "In deinen Augen" von den Oberkrainer Allstars.

https://open.spotify.com/intl-de/track/7kXdLFgxQ3cYIKWT4A0C9g?si=2a189943952444c6

https://open.spotify.com/intl-de/track/0yaqQ0vPtRvW1F5bR1ZGsa?si=77f1d324c86d4c43

Auch heutzutage ist Oberkrainer-Musik noch sehr beliebt, auch unter jungen Menschen. Häufig klingt das natürlich etwas fetziger, frecher und generell frischer. Wie oben schon genannt würde ich hier im deutschen/österreichischen Raum vor allem die Lungauer nennen, deren Stücke haben generell einfach einen vergleichsweise sehr schiebenden und modernen Sound.

https://open.spotify.com/intl-de/track/3YFGh3WivcSUnm9Lrzxfq6?si=bb3dbe0d2c9c49ce

https://open.spotify.com/intl-de/track/22LfiD9TNLYsSCKz7XuwvA?si=c25debcd558e47a3

Aber vor allem in Slowenien, wo das Genre ursprünglich entstand, ist Oberkrainer-Musik ein großer Bestandteil der Kultur und damit auch Popmusik. Große Vertreter sind da z. B. Fehtarji, Modrijani oder Gadi.

https://open.spotify.com/intl-de/track/6EuJiI7FPEYGUtjgaXkjjy?si=961b1066155d445b

https://open.spotify.com/intl-de/track/4DcvsKY1i2SB45ndnbscp8?si=974c85ec93094a4e

Im Oberkrainer-Bereich gibt es auch einige absolute Virtuosen auf ihren Instrumenten, beispielsweise Andrej Toplišek oder Sandi Jug am Akkordeon - vor allem in diesem hochklassigen Bereich zeigen sich viele Parallelen mit der Jazzmusik.

https://open.spotify.com/intl-de/track/4zjV6CVa8MH2gndacY4Z6H?si=ea87b5e911f44831

https://open.spotify.com/intl-de/track/3axHXMhC1ZA1UFy1XKh25p?si=4c9e41f9ceaa40a7

https://open.spotify.com/intl-de/track/17MsiNJnkTv0dOnatqUPKR?si=603b73258f32445a

Ich bin auf eure Abstimmung gespannt. Würde mich auch freuen, wenn ihr vor dem Abstimmen mal kurz in einige Beispiele reinhört, auch wenn man erstmal sagt, "was soll ich damit". Vor allem Freunde der Jazz- und Swing-Musik können wohl vor allem an Andrej Toplišek und ähnlichen Musikern Gefallen finden.

Auch eine kurze Begründung würde mich sehr freuen :)

Grüße, Florian

Mag ich gar nicht 30%
Kannte ich noch nicht 25%
Gefällt mir gut 15%
Gefällt mir teilweise 10%
Mag ich sehr gerne und höre ich oft 10%
Kann ich mir schon anhören 5%
Andere Antwort 5%
Musik, Rock, Gitarre, Pop, Walzer, Deutschland, Slowenien, Schlager, Akkordeon, Alpen, Blasmusik, Genre, instrumental, Jazz, Klarinette, kontrabass, Musikgeschmack, Österreich, Swing, Tradition, Trompete, Volksmusik