我是一個試圖在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以及初始化一個在它的身體? – paul
您的主要方法實例化JFrame在哪裏?然後:您希望我們花時間來幫助您,所以您請花幾分鐘時間來正確**縮進/格式化您的源代碼 - 謝謝! – GhostCat
最初我只是有一個JFrame的實例,並在我的構造函數中初始化它。然而,我讀到了有關使用EDT的原因,並且出於某種原因,我不能通過EDT簡單地調用我的構造函數,因爲我有一個SetVisible()方法的「找不到符號」。所以,爲了彌補這一點,我擴展了JFrame類,希望.....該程序在EDT上運行。 –