Hi,
ich habe einen JSlider programmiert. Mit ihm bestimme ich den Alpha-Wert eines Rot-Tons das in einem JPanel angezeigt wird.
Der JPanel erscheint jedoch neben dem JSlider und gerade mal 5*5 Pixel groß, obwohl ich 30*30 Pixel eingestellt habe.
Ich kenne mich mit LayoutManagern wenig aus und habe daher den Standard benutzt (Flow-Layout?), das automatisch Components einrückt, wenn sie auf derselben Zeile kein Platz mehr haben, nur funktioniert es eben in diesem Fall nicht.
Könnt ihr das mal schnell kompilieren?
Liebe Grüße
Reality
ich habe einen JSlider programmiert. Mit ihm bestimme ich den Alpha-Wert eines Rot-Tons das in einem JPanel angezeigt wird.
Der JPanel erscheint jedoch neben dem JSlider und gerade mal 5*5 Pixel groß, obwohl ich 30*30 Pixel eingestellt habe.
Ich kenne mich mit LayoutManagern wenig aus und habe daher den Standard benutzt (Flow-Layout?), das automatisch Components einrückt, wenn sie auf derselben Zeile kein Platz mehr haben, nur funktioniert es eben in diesem Fall nicht.
Könnt ihr das mal schnell kompilieren?
Code:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class Main extends JFrame implements ActionListener, ChangeListener{
//Breite und Höhe des Frames
static private final int width = 280;
static private final int height = 300;
//In Prozent umrechnen
private int alphaIntensity = (100 * 100) / 255;
//Von Prozent in einen int-Wert umrechnen
private Color alphaColor = new Color(255, 0, 0, (alphaIntensity * 255) / 100);
JPanel contentPane = new JPanel();
JLabel alphaText = new JLabel("Deckungskraft (Leistungseinbußen)");
JSlider alpha = new JSlider(0, 100);
JPanel alphaDemo = new JPanel();
JCheckBox chRender = new JCheckBox("Text-Antialasiang (Leistungseinbußen)", true);
JButton btSave = new JButton("Speichern");
Main(){
super("Konfiguration");
alphaDemo.setBackground(alphaColor);
alphaDemo.setSize(30, 30);
alpha.setValue(alphaIntensity);
alpha.setMinorTickSpacing(5);
alpha.setMajorTickSpacing(10);
alpha.setPaintTicks(true);
alpha.setPaintLabels(true);
alpha.addChangeListener(this);
btSave.addActionListener(this);
contentPane.add(alphaText);
contentPane.add(alpha);
contentPane.add(alphaDemo);
contentPane.add(chRender);
contentPane.add(btSave);
setContentPane(contentPane);
}
public static void main(String[] args) {
Main window = new Main();
//window.setResizable(false);
window.setLocation(window.calculateCenterPosition());
window.setSize(width, height);
window.setVisible(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//Frame in der Mitte positionieren
Point calculateCenterPosition(){
GraphicsEnvironment environment = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = environment.getDefaultScreenDevice();
DisplayMode display = device.getDisplayMode();
int x = (display.getWidth() - width) / 2;
int y = (display.getHeight() - height) / 2;
return new Point(x, y);
}
public void actionPerformed(ActionEvent e){
}
public void stateChanged(ChangeEvent e){
//Von Prozent wieder in einen int-Wert umrechnen
alphaIntensity = (alpha.getValue() * 255) / 100;
alphaColor = new Color(255, 0, 0, alphaIntensity);
alphaDemo.setBackground(alphaColor);
}
}
Liebe Grüße
Reality