私は最初のレイアウトマネージャをswingで使ってみるためのnewbですが、JPanelを表示できず、ウィンドウが最小化されていません。JavaDocに相談しましたが、間違っていることを理解できません。私はちょうど正しい方向にポインタが欲しいです。私はmysqlデータベースにも接続していますが、それは別の時間です。何かアドバイスをいただければ幸いです:)ここJPanelが表示されないのはなぜですか?
は私のコード
package learn;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
import java.sql.*;
import javax.swing.JPanel;
import java.awt.BorderLayout;
public class TestGUI3 extends JFrame implements ActionListener
{
JRadioButton rb1, rb2, rb3;
JFrame f;
JButton b;
JPanel myFirstPanel;
public TestGUI3()
{
f = new JFrame("Welcome to Ballon d'or , created by Darren Estcourt");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFirstPanel = new JPanel();
f.add(myFirstPanel);
rb1 = new JRadioButton("Start New Game");
rb2 = new JRadioButton("Load Game");
rb3 = new JRadioButton("Quit");
myFirstPanel.add(rb1);
myFirstPanel.add(rb2);
myFirstPanel.add(rb3);
ButtonGroup bg=new ButtonGroup();
bg.add(rb1);
bg.add(rb2);
bg.add(rb3);
b = new JButton("OK");
myFirstPanel.add(b);
b.addActionListener(this);
f.setLayout(new BorderLayout());
f.pack();
f.setVisible(true);
}
@Override public void actionPerformed(ActionEvent e)
{
if(rb1.isSelected())
{
f.dispose();
ManagerName test = new ManagerName();
test.getFrame().setVisible(true);
}
if(rb2.isSelected())
{
JOptionPane.showMessageDialog(f,"Load Game");
}
if(rb3.isSelected())
{
System.exit(0);
}
}
public static void main(String[] args)
{
try
{
String myDriver = "org.gjt.mm.mysql.Driver";
String myUrl = "jdbc:mysql://localhost:3306/ballondor?autoReconnect=true&useSSL=false";
Class.forName(myDriver);
Connection conn = DriverManager.getConnection(myUrl, "root", "Lucia290907");
String query = "SELECT * FROM clubInfo";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
while (rs.next())
{
int TeamID = rs.getInt("TeamID");
String TeamName = rs.getString("TeamName");
// print the results
System.out.format("%s, \n", TeamName);
} // end while loop
st.close();
} // end try
catch (Exception e)
{
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
TestGUI3 test = new TestGUI3();
test.setVisible(true);
}
});
}
}
あなたのクラスがJFrameを拡張して1つを初期化する理由はありますか体の中に? – paul
JFrameをインスタンス化する主な方法はどこですか?それでは、私たちがあなたを助けるために時間を費やしてほしいので、**あなたのソースコードのインデント/書式を正しく設定するのには数分を要します。ありがとう! – GhostCat
最初はJFrameのインスタンスがあり、それをコンストラクタで初期化しました。しかし、私はEDTの使い方を読んでいました。なぜなら、私はSetVisible()メソッドの "シンボルを見つけることができませんでした"ので、私は単にEDTでコンストラクタを呼び出すことができません。ですから、この問題を解決するために、私はJFrameクラスを拡張しました。うまくいけば.....プログラムはEDT上で動作しています。 –