에러가 나는데.. 뭔지 모르겠어요 ;;
큰모음
안녕하세요
자바를 배운지 얼마 안됬는데요..
에러가 나는데 무슨소린지 -_-;;;;;;;;;;;;;;;;
좀 고쳐주세요 ㅠ ㅠ
테이블값을 클릭하면 콘솔에 그 값이 뜨는 이벤트를 걸었는데..
안되네요 -_-;; 뭐가 잘못된거예요 ;;?;==============================================================
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.ActionEvent;
import javax.swing.table.JTableHeader;
import java.awt.Color; class Test2 implements ListSelectionListener{
JFrame frame;
JButton button;
JTextField field;
Test2(){
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
button = new JButton(버튼 이벤트);
button.addMouseListener(new MyButtonAdapter());//이벤트 처리 함수(MouseAdapter 클레스에 있는) 호출
frame.add(button, North);
final String[] names[] = {A, B, C, D, E};
final Object[][] data[][] = {
{A1, B1, C1, D1, E1,new Integer(1)},
{A2, B2, C2, D2, E2,new Integer(2)},
{A3, B3, C3, D3, E3,new Integer(3)},
{A4, B4, C4, D4, E4,new Integer(4)},
{A5, B5, C5, D5, E5,new Integer(5)}
};
//JTable table = new JTable(data, title);
TableModel dataModel = new AbstractTableModel() {
public int getColumnCount() { return names.length; }
public int getRowCount() { return data.length;}
public Object getValueAt(int row, int col) {return data[row][col];}
public String getColumnName(int column) {return names[column];}
public Class getColumnClass(int col) {return getValueAt(0,col).getClass();}
public void setValueAt(Object aValue, int row, int column) {
data[row][column] = aValue;
}
};
table = new JTable(dataModel);
ListSelectionModel listMod = table.getSelectionModel();
listMod.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
listMod.addListSelectionListener(this);
JTableHeader header = table.getTableHeader();
header.setReorderingAllowed(false);//행을 못움직이게
//table.setShowVerticalLines(false);//수직라인을 보이게 하기
//table.setShowHorizontalLines(false); //수평라인을 보이게 하기
table.setShowGrid(false);//위에 두개 합친것
table.setSelectionForeground(Color.red);//선택된 행을 붉은색으로
table.setTableHeader(header);
table.setPreferredScrollableViewportSize(new Dimension(350, 150));
JScrollPane scrollPane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS , JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
frame.add(scrollPane, Center);
field = new JTextField();
field.addMouseListener(new MyButtonAdapter());
frame.add(field, South);
frame.setSize(400, 300);
frame.setVisible(true);
table.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
if (e.getClickCount() == 2){
System.out.println( double click );
}
}
} );
}
} public void valueChanged(ListSelectionEvent e) { //여기서 가져오죠...
int maxRows;
int[] selRows;
Object value;
if (!e.getValueIsAdjusting()) {
selRows = table.getSelectedRows();
if (selRows.length 0) {
for (int i= 0; i 5 ; i++) {
// get Table data
TableModel tm = table.getModel();
value = tm.getValueAt(selRows[0],i);
System.out.println(Selection : + value );
}
System.out.println();
}
}
}
class MyButtonAdapter extends MouseAdapter{
public void mouseClicked(MouseEvent e){
Object value = e.getSource();
if(value == button){
JButton value1 = (JButton)value;//object가 최상위클래스기 때문에 형변환을 해주어야함
String xxx = value1.getActionCommand();//버튼 누르면 버튼에 있는 텍스트가 뜸
field.setText(xxx);
}
else if(value == field){
System.out.println(fdsfdsa);
}
}
}
public static void main(String[] args){
new Test2();
}
}
-
헛나발 2024-11-22
에러 메세지를 올려주셔야~~ 쉽게 답변을 줄 수 있겠지요.
-
뱐헀어 2024-11-22
프로그램 엄청 복잡하네요 { } 열고 닫고도 안맞는듯 하고
제가 보니까 Test2클레스 하나에 다 만드신거 같은데...머리 아프네요 ㅋㅋ
프로그램은 역활 분담을 잘 하시면 덜 복잡한데
예를 들어 화면클래스 따로 만들고요 물론 이벤트 같이 들어가겠죠.
그다음 처리하는 클래스 따로 만들고요
그담 객체 따로 만들면 덜 복잡한데...... 덤으로 main()있는 클래스도 따로 만들어도 좋고요.
일단 은 {}가 어딘가 꼬인듯요 잘 마춰보세요.