因此,在 Java
中,我有两个使用 swing 组件
创建的类。在一个名为 SearchPage
的类中,我在提供的 Jtextfield
或 Jcombobox
中设置搜索参数,然后单击 apply jbutton
。当我这样做时,根据包含数据的字段,我想将该变量发送到 ItemPage
类,以便在我的 pop_tree 方法中使用该变量来搜索我的 mysql 数据库并填充树与搜索结果。我怎样才能做到这一点?
以下是 pop_tree
方法的代码:
public final void pop_tree() throws SQLException {
//creating root node
DefaultTreeModel dbtree = (DefaultTreeModel)DBTree.getModel();
dbtree.reload();
dbtree.getRoot();
DefaultMutableTreeNode content = new DefaultMutableTreeNode("Content");
//let's see if I can create these child nodes
SearchPage s = new SearchPage();
try {
con = DBconnect.getConnection();
stm = con.createStatement();
s.apply_search_button.doClick();
if(s.apply_search_button.getModel().isPressed()){
//Grab what's in search field of Search Page
try{
String search = s.search_field.getText();
if (search == null){
return;
}else{
ResultSet rs = stm.executeQuery("SELECT * from displaydetails WHERE item LIKE '%"+search+"%'");
while (rs.next()){
DefaultMutableTreeNode itemNode = new DefaultMutableTreeNode (rs.getString("item"));
content.add(itemNode);
}
}
}catch(SQLException e){
System.out.println(e);
}
try{
//If a genre selection is made in the combo box:
if ((s.option_box.getSelectedItem())== "genre"){
String genre2 = s.result_box.getSelectedItem().toString();
if (genre2.equals(s.result_box.getSelectedItem())) {
ResultSet rs1 = stm.executeQuery("SELECT * from displaydetails WHERE genre = '" + genre2 + "';");
while (rs1.next()){
DefaultMutableTreeNode itemNode = new DefaultMutableTreeNode (rs1.getString("item"));
content.add(itemNode);
}
}
}
}catch(SQLException e){
System.out.println(e);
}
我创建了搜索表单来设置搜索参数,但是当我单击表单上的 apply_search_button
时,我想将变量发送到 pop_tree() 中的正确位置
方法来执行搜索。谁能帮我这个?谢谢。
最佳答案
要获得“使用另一个类中的 jbutton 操作将 jcombobox 变量从一个类传递到另一个类”的答案,不需要发布大部分代码。
始终考虑发布 [mcve] 。
这是一个证明这一点的例子:
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class SearchPage extends JFrame {
private JTextField searchField;
private JButton searchButton;
private ItemPage itemPage;
SearchPage(){
setSize(200,100);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
searchField = new JTextField(9);
add(searchField, BorderLayout.NORTH);
searchButton = new JButton("Search");
searchButton.addActionListener(e -> {
String searchFor = searchField.getText();
if ((searchFor != null) && ! searchFor.isEmpty()) {
itemPage.search(searchFor);
}
});
add(searchButton, BorderLayout.SOUTH);
itemPage = new ItemPage();
setVisible(true);
}
public static void main(String[] args) {
new SearchPage();
}
}
class ItemPage {
public void search(String searchFor) {
System.out.println("Searching for "+ searchFor);
}
}
关于java - 使用另一个类中的 jbutton 操作将 jcombobox 变量从一个类传递到另一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46751382/