dale1221:
public void rotateGUI() {
JFrame rotateFrame = new JFrame("Image Rotation");
JRadioButton rotateLeft = new JRadioButton("Rotate Left");
JRadioButton rotateRight = new JRadioButton("Rotate Right");
JRadioButton upsideDown = new JRadioButton("Rotate Upside Down");
JButton submit = new JButton("Submit");
ButtonGroup rotateButtons = new ButtonGroup();
rotateLeft.setBounds(120,30,120,50);
rotateRight.setBounds(120,30,120,50);
upsideDown.setBounds(120,30,120,50);
submit.setBounds(125,90,80,30);
rotateFrame.add(rotateLeft);
rotateFrame.add(rotateRight);
rotateFrame.add(upsideDown);
rotateFrame.add(submit);
rotateButtons.add(rotateLeft);
rotateButtons.add(rotateRight);
rotateButtons.add(upsideDown);
submit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if (rotateLeft.isSelected()) {
rotationAngle = 90;
}
else if (upsideDown.isSelected()) {
rotationAngle = 180;
}
else if (rotateRight.isSelected()){
rotationAngle = 270;
}
}
});
rotateFrame.setBounds(200, 200, 400, 200);
rotateFrame.setVisible(true);
私は3つのラジオボタンを持つフレームと送信ボタンを作成しようとしていますが、私はそれを実行するたびに、私は何をすべきかに関係なく、それは大きな送信ボタンを持つフレームだけです。私のコードで間違っては何ですか?前もって感謝します。
ギルバートルブラン:
代わりの場所や大きさに自分自身が、使用しようとするすべてのレイアウトマネージャをスイングします。
ここでは、GUI私が思いついたのです。
ここで私が行った変更があります。
私は、Swingコンポーネントが作成され、イベントディスパッチスレッド上で実行されていることを確認する方法invokeLater SwingUtilitiesへの呼び出しを追加しました。
私はのBorderLayoutとのGridLayoutを使用することができますので、私は、のJPanelをネストされました。
私は一緒にコンポーネントメソッド呼び出しをスイングし、行と列でそれらを組織にグループ化。これは、はるかにはるかに簡単に問題を発見し、修正することができます。
ここでは、コードです。
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.SwingUtilities;
public class ExampleGUI {
private int rotationAngle;
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new ExampleGUI().rotateGUI();
}
});
}
public void rotateGUI() {
JFrame rotateFrame = new JFrame("Image Rotation");
rotateFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BorderLayout());
mainPanel.setPreferredSize(new Dimension(300, 100));
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(0, 1));
ButtonGroup rotateButtons = new ButtonGroup();
JRadioButton rotateLeft = new JRadioButton("Rotate Left");
rotateButtons.add(rotateLeft);
JRadioButton rotateRight = new JRadioButton("Rotate Right");
rotateButtons.add(rotateRight);
JRadioButton upsideDown = new JRadioButton("Rotate Upside Down");
rotateButtons.add(upsideDown);
buttonPanel.add(rotateLeft);
buttonPanel.add(rotateRight);
buttonPanel.add(upsideDown);
mainPanel.add(buttonPanel, BorderLayout.BEFORE_FIRST_LINE);
JButton submit = new JButton("Submit");
submit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (rotateLeft.isSelected()) {
rotationAngle = 90;
} else if (upsideDown.isSelected()) {
rotationAngle = 180;
} else if (rotateRight.isSelected()) {
rotationAngle = 270;
}
}
});
mainPanel.add(submit, BorderLayout.AFTER_LAST_LINE);
rotateFrame.add(mainPanel);
rotateFrame.pack();
rotateFrame.setLocationByPlatform(true);
rotateFrame.setVisible(true);
}
}