ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと

javaで「Push!」というボタンを作ったのですが
そのレイアウトの位置が下に来てくれません。

実際のソースは

package swing_1;//パッケージの名前だけで良い
import javax.swing.*;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.JLabel;
import java.awt.FlowLayout;
import java.awt.Container;

public class Sample19 extends JFrame implements ActionListener{

JComboBox startCombo;
JComboBox endCombo;
JLabel label;

public static void main(String[] args){
Sample19 frame = new Sample19();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(10, 10, 300, 200);
frame.setTitle("タイトル");
frame.setVisible(true);
}

Sample19(){
label = new JLabel("");
label.setHorizontalAlignment(JLabel.CENTER);

JFrame f = new JFrame("自由に配置する");

JButton btn = new JButton("Push!");
btn.addActionListener(this);

Container cont = f.getContentPane();

cont.add(btn);

btn.setBounds(0,0,50,20);


JPanel p = new JPanel();
p.add(btn);

getContentPane().add(p,BorderLayout.CENTER);
getContentPane().add(label,BorderLayout.PAGE_END);

String[] startTime = {"08:00","09:00","10:00","11:00",
"12:00","13:00","14:00","15:00",
"16:00","17:00","18:00","19:00"};

String[] endTime = {"08:00","09:00","10:00","11:00",
"12:00","13:00","14:00","15:00",
"16:00","17:00","18:00","19:00"};

startCombo = new JComboBox(startTime);
startCombo.setPreferredSize(new Dimension(80, 30));

startCombo.addActionListener(this);

endCombo = new JComboBox(endTime);
endCombo.setPreferredSize(new Dimension(80, 30));

endCombo.addActionListener(this);

/* JPanel p = new JPanel();*/
p.add(new JLabel("start:"));
p.add(startCombo);
p.add(new JLabel(" end:"));
p.add(endCombo);

label = new JLabel();
JPanel labelPanel = new JPanel();
labelPanel.add(label);

getContentPane().add(p, BorderLayout.CENTER);
getContentPane().add(labelPanel, BorderLayout.PAGE_END);
}

public void actionPerformed(ActionEvent e) {
int modifiers = e.getModifiers();

StringBuffer sb = new StringBuffer();//ストリングバッファー=文字の格納?
sb.append("ボタンクリック ");

if((modifiers & ActionEvent.ALT_MASK) == ActionEvent.ALT_MASK){//バッファーがないと影響する
sb.append("ALT ");
}
if((modifiers & ActionEvent.SHIFT_MASK) == ActionEvent.SHIFT_MASK){
sb.append("SHIFT ");
}
label.setText(new String(sb));


String start;
String end;

if (startCombo.getSelectedIndex() == -1){
start = "(not select)";
}else{
start = (String)startCombo.getSelectedItem();
}

if (endCombo.getSelectedIndex() == -1){
end = "(not select)";
}else{
end = (String)endCombo.getSelectedItem();
}

label.setText("START:" + start + ", END:" + end);
}
}

までがソースでコンパイルエラーはなし

環境はjava eclipse swing macです。

JFrameで枠を作成しcontentsPane()で「Push!」ボタンを一番下に持って来たいのですが
誰かプログラム読める方いらっしゃったらお願いします。

A 回答 (1件)

誰も答えないようなので、ちょっとだけ。


ソースを見る限りボタンは左上に出そうですが、ソースを改造してほしいという
話なんですかね? どんなアドバイスをほしいのかはっきり書かずに作業丸投げでは
答えは返ってこないでしょう。

蛇足ですが、私はSwing を使うのはやめて、Oracle推奨の JavaFXに
ずいぶん前に切り替えてしまいました。XML+GUIツールでVisual Basicみたいに簡単に
画面にペタペタボタン張り付けて、イベントハンドラ書いてGUIがデザインできるので、
いまさらコードオンリーでGUIを作る Swingに戻る気はないです。

今時 Swing を入門するのは珍しいなとは思いました。

#Swing派から石投げられそうですが・・・
    • good
    • 0
この回答へのお礼

ありがとうございます!java fxの方が優れているんですね!情報ありがとうございます!

お礼日時:2016/10/14 17:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!