Ich habe versucht, das Erscheinungsbild von Jmenu und die gesamte Symbolleiste in Java Swing zu ändernJava

Java-Forum
Anonymous
 Ich habe versucht, das Erscheinungsbild von Jmenu und die gesamte Symbolleiste in Java Swing zu ändern

Post by Anonymous »

Ich habe versucht, eine Lösung für das Codierungs -Erscheinungsbild zu finden. Bisher schien es mit JMenubar zu funktionieren, aber ich habe bei JMenu . Manchmal wird auch der Text nicht in einem unglissen Jmenu angezeigt, aber ich kann es nur auf falsche Weise tun. Das, was ich versucht habe, war, eine benutzerdefinierte Methode für JMenu zu erstellen, indem eine Klasse erstellt wird, die JMenu erweitert. Ich habe versucht, nach dem ursprünglichen Quellcode von JMenu zu suchen, in der Hoffnung, dass es einige Methoden gibt, die ich überschreiben kann. Ich bin mir jedoch nicht sicher, ob es so gemacht werden sollte. Ich habe ein paar Sachen über uimanager gelesen, es aber nicht versucht. Könnte es eine bessere Option sein? Ich poste meinen Code unter: < /p>
Hauptklasse < /h5>

Code: Select all

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class Main {

public static void main(String[] args) {

//  JFRAME
JFrame frame = new JFrame();
frame.setTitle("Test App");
frame.setResizable(true);
frame.setSize(800,600);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

//  JMENUBAR
CustomMenuBar menuBar = new CustomMenuBar();
menuBar.setColor(Color.BLUE);
//  JMENU
JMenu menu = new JMenu("Language");
menu.setForeground(Color.pink);
//        menu.addMenuListener();

//  JMENUITEM
JMenuItem eng = new JMenuItem("English");

menu.add(eng);
menuBar.add(menu);
frame.setJMenuBar(menuBar);
frame.setVisible(true);
}
}
< /code>
 benutzerdefinierte MENUBAR -Klasse < /h5>
    import javax.swing.*;
import java.awt.*;

public class CustomMenuBar extends JMenuBar {
Color menuBarBgc = Color.RED;

public void setColor(Color color) {
menuBarBgc = color;
}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(menuBarBgc);
g2d.fillRect(0,0,getWidth() -1, getHeight() -1);
}
}
< /code>
 benutzerdefinierte MENU -Klasse < /h5>
    import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;

public class CustomMenu extends JMenu {
Color menuBgc = Color.RED;

public void setColor(Color color) {
menuBgc = color;
//  setOpaque(true);
}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(menuBgc);
g2d.fillRect(0,0,getWidth() -1, getHeight() -1);
}
}
SCREENSHOTS
How the app looks like:
Image

How it looks like after clicking the JMenu "Sprache":

Wie ich möchte, dass es aussieht (After Jmensu -Code> wurde geklickt. Darunter ist blau mit einem rosa Text, genau wie der JMenuuBar bevor Sie auf irgendetwas klicken):

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post