개체가있는 패널이있는 스크롤 패널을 만들 때 모든 패널에 단추를 추가하고 클릭하면 해당 패널의 이름이 반환됩니다. 제품에 넣고 변수에 넣으십시오. 문제는, 액션 패널에 연결된 마지막 오브젝트 패널이 액션 리스너에 연결된다는 것입니다. 실제 패널 생성ActionListener가 모든 개체에서 작동하지 않습니다.
try{
System.out.println(sql);
ResultSet rs = data.SQL.executeQuery(sql);
String list = "";
int count=0;
while (rs.next()){
count++;
}
ResultSet result = data.SQL.executeQuery(sql);
ProductDisplayPanel.removeAll();
JPanel addPanel = new JPanel();
addPanel.setLayout(new GridLayout (count, 1));
JScrollPane scroll = new JScrollPane();
while (result.next()) {
searchDisplay = new SearchDisplay (result);
scroll.add(searchDisplay);
addPanel.add(searchDisplay);
}
scroll.setPreferredSize(new Dimension(425,390));
scroll.setViewportView(addPanel);
ProductDisplayPanel.add(scroll);
ProductDisplayPanel.revalidate();
ProductDisplayPanel.repaint();
System.out.println(list);
SearchDisplay.AddToCart.addActionListener(action);
frame.add(SearchDisplay.AddToCart);
} catch (Exception ae){
ae.printStackTrace();
}
} catch (Exception e1) {
e1.printStackTrace();
}
클래스 : 여기에 스크롤 및 개별 패널에 대한 코드입니다
public SearchDisplay(ResultSet result) throws Exception{
setPreferredSize(new Dimension(500, 156));
setVisible(true);
String link = result.getString("image");
System.out.println(link);
BufferedImage icecream = ImageIO.read(new URL("file:///"+link));
JLabel lblImage = new JLabel(new ImageIcon (icecream));
name = result.getString("Name");
JLabel lblName = new JLabel(name);
String category = result.getString("Pieces");
JLabel lblFlavour = new JLabel("Pieces: "+category);
String productID = result.getString("ProductID");
JLabel lblPrice = new JLabel("Product ID: " + productID);
String price = result.getString("Price");
JLabel lblType = new JLabel("Price: "+ price +" kr");
String age= result.getString("Age");
JLabel lblBrand = new JLabel("Age: "+age);
AddToCart = new JButton("Add to cart");
는'JScrollPane의 번호를 add'를 사용하지 마십시오 ...과 관련 된 항목을 알고 자신의
ActionListener
의 것,이다 스크롤 창보기를 설정하는 방법이 아닙니다. 대신에, JScrollPane # setViewportView를 사용합니다. 자세한 내용은 [스크롤 창 사용 방법] (http://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html)을 확인하십시오. 스크롤 창은 하나의보기 만 가질 수 있음을 기억하십시오. – MadProgrammer모든 패널이 문제없이 표시됩니다. 모든 패널에 JButton을 추가하고이 버튼에 리스너를 추가합니다. 문제는 그것이 패널 중 하나에서만 작동하고 클릭 할 때 모든 것이 작동하지 않는다는 것입니다. –
액션 리스너가 어떻게 등록되었거나 작동하는지 보여주는 코드를 제공하지 않았습니까? (또한 실제로는 시리즈가 거의 없습니다. 실제로 스크롤 창이 작동하도록하는 사고) – MadProgrammer