2016-12-07 13 views
-2

私はクイズアプリを構築しようとしており、データベースを構築することができました。私はパネル間で切り替えるためにカードレイアウトを使ってGUIを作成しました。質問とオプションをデータベースからJtextAreaに取り込み、成功しませんでした。私の質問は、ビジュアルコンポーネント(jtextエリア、データベースからのコンテンツを表示するjbutton)を取得する方法です。質問番号に従ってテキストを自動的に設定する必要があります。あなたはあなたの短い正確な例を与えるために、その困難な、あなたのコードを言及しなかったのでJButton、JavaのJTextAreaにデータベースから取得したテキストを表示するには?

これは私のコード

package quizzGUI; 

import java.awt.EventQueue; 

import javax.swing.JFrame; 
import java.awt.CardLayout; 
import javax.swing.JPanel; 
import javax.swing.JTextArea; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 

import java.awt.Font; 
import java.awt.List; 

import javax.swing.SwingConstants; 
import javax.swing.JButton; 
import java.awt.Color; 
import javax.swing.JRadioButton; 
import javax.swing.JTextPane; 
import java.awt.event.ActionListener; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.Statement; 
import java.util.ArrayList; 
import java.awt.event.ActionEvent; 

import javax.management.Query; 
import javax.swing.ButtonGroup; 

public class quizzMain { 

    private JFrame frame; 
    private JPanel Menu; 
    private JPanel Playing; 
    private JPanel Score; 
    private final ButtonGroup buttonGroup = new ButtonGroup(); 
    public JTextPane textPane; 
    public JButton btnA; 
    public JRadioButton rdbtnB; 
    public JRadioButton rdbtnC; 
    public JRadioButton rdbtnD; 
    public JTextArea textArea; 


    /** 
    * Launch the application. 
    */ 
    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       try { 
        quizzMain window = new quizzMain(); 
        window.frame.setVisible(true); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    /** 
    * Create the application. 
    */ 

    Connection connection = null; 
    public quizzMain() { 
     initialize(); 
     connection = sqlConnection.dbConnector(); 

    } 

    private void initialize() { 

     Connection connection = sqlConnection.dbConnector(); 
     Statement stmt=null; 

     frame = new JFrame(); 
     frame.setBounds(100, 100, 450, 300); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.getContentPane().setLayout(new CardLayout(0, 0)); 

     final JPanel Menu = new JPanel(); 
     frame.getContentPane().add(Menu, "name_668313932787145"); 
     Menu.setLayout(null); 
     Menu.setVisible(true); 

     final JPanel Playing = new JPanel(); 
     Playing.setBackground(Color.CYAN); 
     frame.getContentPane().add(Playing, "name_668321772390383"); 
     Playing.setLayout(null); 
     Playing.setVisible(false); 

     final JPanel Score = new JPanel(); 
     frame.getContentPane().add(Score, "name_668324579994343"); 
     Score.setLayout(null); 
     Score.setVisible(false); 

     JLabel lblNewLabel = new JLabel("C QUIZZ"); 
     lblNewLabel.setFont(new Font("Times New Roman", Font.BOLD | Font.ITALIC, 14)); 
     lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER); 
     lblNewLabel.setBounds(123, 47, 169, 40); 
     Menu.add(lblNewLabel); 

     JButton btnStart = new JButton("Start"); 
     btnStart.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent arg0) { 
       Integer i=0; 

       Playing.setVisible(true); 
       Menu.setVisible(false); 
        try{ 
         String query = ("SELECT * FROM Question "); 
         PreparedStatement pst=connection.prepareStatement(query); 
         ResultSet rs=pst.executeQuery(); 
         do { 

           btnA.setText(rs.getString("ANSWERA")); 



         }while(rs.next()); 

        }catch(Exception e){ 
         JOptionPane.showMessageDialog(null, e); 
        e.printStackTrace(); 
        }   

      } 
     }); 
     btnStart.setFont(new Font("Tahoma", Font.BOLD, 12)); 
     btnStart.setBounds(167, 176, 89, 23); 
     Menu.add(btnStart); 

     JButton btnFinish = new JButton("Finish"); 
     btnFinish.setBounds(335, 227, 89, 23); 
     Playing.add(btnFinish); 
     btnFinish.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent arg0) { 
       Score.setVisible(true); 
       Playing.setVisible(false); 
      } 
     }); 





     JButton btnNextQuestion = new JButton("Next"); 
     btnNextQuestion.setBounds(10, 227, 89, 23); 
     Playing.add(btnNextQuestion); 

     JTextArea textArea = new JTextArea(); 
     textArea.setBounds(20, 11, 387, 41); 
     Playing.add(textArea); 

     JButton btnA = new JButton("New button"); 
     btnA.setBounds(20, 84, 381, 41); 
     Playing.add(btnA); 





     JTextArea txtrScore = new JTextArea(); 
     txtrScore.setBounds(87, 74, 244, 43); 
     txtrScore.setText("Score:"); 
     Score.add(txtrScore); 
    } 
} 
+0

'textArea.setText(" something ")'? –

+0

最初にDBから文字列にテキストを選択します。次に、コンポーネントによっては、適切なメソッド(Jbutton - 'setLabel'、JTextArea - ' setText'など)を使用します。 –

+0

'"データベースから質問とオプションをJtextAreaに返すことを試みました。 " - 詳細を私たちに伝えずに、適切なコードを表示することなく、あなたが間違っているかもしれないことを私たちが知る方法はなく、最良のアドバイスはチュートリアルをチェックすることです。さらに詳しいヘルプが必要な場合は、詳細を伝え、あなたの[mcve]を作成して表示するなど、この質問を改善することを検討してください。 –

答えて

0

です。このtutorialの情報(名前と番号)を取得してJTextAreaに表示することをお勧めします。

次に設定するJTextAreasetText方法を使用JTextAreaの中の情報

String url = "jdbc:mysql://localhost:3306/"; 
String db = "databasename"; 
String driver = "com.mysql.jdbc.Driver"; 
String user = "xxxx"; 
String pass = "xxxx"; 
Connection con = null; 
PreparedStatement pstatement = null; 

Class.forName(driver).newInstance(); 
con = DriverManager.getConnection(url + db , user, pass); 

pstatement = con.prepareStatement("SELECT name, phonenumber FROM tablename"); 
con = DriverManager.getConnection(url + db, user, pass); 
ResultSet rs = pstatement.executeQuery(); 

while(rs.next()){ 
    String name = rs.getString(1); 
    int phonenumber = rs.getInt(2); 
} 

セットテキストを

データベース接続の確立及びフェッチ:

以下チュートリアルからキーポイントを抽出しますテキストたとえば、recordTextArea.setText(name + " " + phonenumber);です。

+0

コードを入れないと申し訳ありません。 – carlos

+0

@carlos問題はありません。チュートリアルを読むと、かなり簡単にでき、包括的なアイデアを得ることができます。 –

関連する問題