私は、Javaデータベースを使用しているJavaでプロジェクトを持っています。 私のデータベースには「回答」テーブルがあり、回答が良いか悪いかをユーザが投票できるようにする必要があります(+1または-1)。ユーザーは1つの回答に対して1回だけ投票することができます。JTableの矢印評価が
EDIT:ここ が選びだし質問の表示答えを私のコードです:ここでは
private void showAnswer(String chosenString) {
editAnswer = new JButton("Edit");
deleteAnswer = new JButton("Delete");
editAnswer.addActionListener(this);
deleteAnswer.addActionListener(this);
JPanel commentsPanel = new JPanel();
answerFrame = new JFrame();
answerFrame.setLayout(new BorderLayout());
JLabel questionText = new JLabel(chosenString);
arrowNorth = new BasicArrowButton(BasicArrowButton.NORTH);
arrowSouth = new BasicArrowButton(BasicArrowButton.SOUTH);
arrowNorth.addActionListener(this);
arrowSouth.addActionListener(this);
answerFrame.add(questionText, BorderLayout.NORTH);
tableInsideModel = new ResultSetTableModel(null);
tableInside = new JTable(tableInsideModel);
JScrollPane tableScroll = new JScrollPane(tableInside);
answerFrame.add(tableScroll);
String query = "select a_id, answer, nickname, a.add_date from answers a inner join users on au_id=u_id where aq_id="
+ "(select q_id from questions where question='"+chosenString+"')";
sendInsideQuery(query);
tableInside.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e){
if(e.getClickCount()==2){
JTable target = (JTable) e.getSource();
int row = target.getSelectedRow();
doubleClickValue = (int) tableInsideModel.getValueAt(row, 0);
String doubleClickText = (String) tableInsideModel.getValueAt(row, 1);
doubleClickWindow(doubleClickValue, doubleClickText);
}
}
public void mouseReleased(MouseEvent er){
int r = tableInside.rowAtPoint(er.getPoint());
if(r>= 0 && r<tableInside.getRowCount()){
tableInside.setRowSelectionInterval(r, r);
}else{
tableInside.clearSelection();
}
int rowindex = tableInside.getSelectedRow();
if(rowindex<0)
return;
if(er.isPopupTrigger() && er.getComponent() instanceof JTable){
popupInside = new JPopupMenu();
popupInside.add(editAnswer);
popupInside.add(deleteAnswer);
popupInside.show(er.getComponent(), er.getX(), er.getY());
}
}
});
JButton buttonReturn = new JButton("Back");
buttonReturn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
answerFrame.setVisible(false);
}
});
JButton buttonAddAnswer = new JButton("Add Answer");
buttonAddAnswer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
newAnswer(chosenString);
}
});
commentsPanel.add(buttonAddAnswer,BorderLayout.CENTER);
commentsPanel.add(buttonReturn,BorderLayout.CENTER);
commentsPanel.add(arrowNorth, BorderLayout.WEST);
commentsPanel.add(arrowSouth, BorderLayout.WEST);
answerFrame.add(commentsPanel,BorderLayout.SOUTH);
answerFrame.setVisible(true);
answerFrame.setSize(1000, 500);
answerFrame.setLocationRelativeTo(null);
}
は私の問題です: は、どのように私はその答えに投票したユーザー「記憶」してMySQLデータベースを強制することができますか? すべてのJTableの行に矢印(上下)を追加するオプションはありますか? または、GUIの下部に2つの矢印(上のように)を作ってTableModel.getValueAt();
と答えてください。
私はもっと慎重だったはずです。あなたが試したことの例を見せてください。 [mcve]はコード全体を単純に提供するよりも優れています。ここには多くのGUIがこの質問には役に立たない。 – AxelH
私は何も試しませんでした。私はこの問題をどうやって解決できるのか分かりませんでした。 – najdzion15
私はそれを行いました。私はそれを追加する方法を知っていますが、私は1人のユーザによる複数投票の1つの質問のためにこのプロジェクトを保護する方法を知らない。 – najdzion15