Hi Ich habe ein Problem mit meiner GUI.
Ich möchte dass das pannel was in pathPanel() erzeugt wird am oberen rand des Frames steht und sich dort über die Breite des Frames erstreckt.
Aus irgendeinen Grund wird die Größe die ich angebe nicht übernommen und JButton, JTextField und Pannels sind kleiner als gewünscht.
Entweder mache ich was falsch oder mein PC Spinnt ;(
derzeit steht es oben in der Mitte aber sobalt die Methode sliderPanel() dazukommt geht es von links nach rechts. Ich setze alles mit setBounds also dürfte es sich nicht so anordnen! das panel welches mit sliderPanel() dazukommt sollte rechts am unteren rand stehen.
setBounds nutze ich weil ich bereits mit anderen Layout Managern (GridBagL.) es nicht schaffe Das JTextfield in der Größe (setSize) und Position anzupassen
Ich möchte dass das pannel was in pathPanel() erzeugt wird am oberen rand des Frames steht und sich dort über die Breite des Frames erstreckt.
Aus irgendeinen Grund wird die Größe die ich angebe nicht übernommen und JButton, JTextField und Pannels sind kleiner als gewünscht.
Entweder mache ich was falsch oder mein PC Spinnt ;(
Java:
import java.awt.Toolkit;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.TitledBorder;
public class GUI {
public JFrame jFrame = null;
private JPanel mainJPanel = null;
private JPanel topjPanel = null;
private JPanel volumejPanel = null;
private JPanel durationjPanel = null;
private JPanel rightJPanel = null;
private int framewidth = 550;
private int frameheight = 500;
private JSlider sDuration = null;
private JSlider sVolume = null;
private JButton fileChooser = null;
private JTextField filepath = null;
private int width = 80;
private int height = 25;
/**
* Start Method of the GUI
* @param eventHandler
*/
public void init() {
jFrame = new JFrame("Sounder");
mainJPanel = new JPanel();
jFrame.setLayout(null);
jFrame.setBounds(
(int) Toolkit.getDefaultToolkit().getScreenSize().width / 2
- (framewidth / 2), (int) Toolkit.getDefaultToolkit()
.getScreenSize().height
/ 2 - (frameheight / 2), framewidth, frameheight);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setResizable(true);
mainJPanel.setBounds(0, 0, jFrame.getSize().width, jFrame.getSize().height);
pathPanel();
// sliderPanel();
jFrame.add(mainJPanel);
jFrame.setVisible(true);
}
private void pathPanel() {
topjPanel = new JPanel();
topjPanel.setBounds(5, 5, mainJPanel.getSize().width - 10, 50);
topjPanel.setBorder(new TitledBorder(""));
filepath = new JTextField();
filepath.setBounds(5, 10, 100, 25);
topjPanel.add(filepath);
fileChooser = new JButton("Browse");
fileChooser.setBounds(0, 0, width, height);
fileChooser.setActionCommand("chooser");
fileChooser.setToolTipText("Open Excel File");
topjPanel.add(fileChooser);
mainJPanel.add(topjPanel);
}
private void sliderPanel() {
rightJPanel = new JPanel();
rightJPanel.setBorder(new TitledBorder(""));
rightJPanel.setBounds(framewidth - 260, 280, 240, frameheight - 10);
durationjPanel = new JPanel();
durationjPanel.setSize(80, 250);
sDuration = new JSlider(JSlider.VERTICAL, 0, 2000, 1000);
sDuration.setPaintLabels(true);
sDuration.setPaintTicks(true);
sDuration.setMajorTickSpacing(200);
sDuration.setMinorTickSpacing(100);
sDuration.setToolTipText("Duration in milliseconds");
durationjPanel.add(sDuration);
durationjPanel.setBorder(new TitledBorder("Length"));
durationjPanel.setBounds(0, 0, 40, rightJPanel.getSize().height - 80);
rightJPanel.add(durationjPanel);
volumejPanel = new JPanel();
volumejPanel.setSize(80, 250);
sVolume = new JSlider(JSlider.VERTICAL, 0, 100, 20);
sVolume.setPaintLabels(true);
sVolume.setPaintTicks(true);
sVolume.setSnapToTicks(false);
sVolume.setMajorTickSpacing(20);
sVolume.setMinorTickSpacing(10);
sVolume.setToolTipText("Volume 0 - none, 100 - full");
volumejPanel.add(sVolume);
volumejPanel.setBorder(new TitledBorder("Volume"));
volumejPanel.setBounds(80, 0, 40, rightJPanel.getSize().height - 20);
rightJPanel.add(volumejPanel);
mainJPanel.add(rightJPanel);
}
public static void main(String[] args) {
GUI gui = new GUI();
gui.init();
}
}
derzeit steht es oben in der Mitte aber sobalt die Methode sliderPanel() dazukommt geht es von links nach rechts. Ich setze alles mit setBounds also dürfte es sich nicht so anordnen! das panel welches mit sliderPanel() dazukommt sollte rechts am unteren rand stehen.
setBounds nutze ich weil ich bereits mit anderen Layout Managern (GridBagL.) es nicht schaffe Das JTextfield in der Größe (setSize) und Position anzupassen
Zuletzt bearbeitet: