내 구성 요소는 JFileChooser를 다른 구성 요소에 포함시키는 것입니다. 예를 들어 파일을 선택하고 "추가"버튼을 클릭하면 파일이 JList에 추가됩니다 (런타임 중에) .I이 형태의 예를 들어 GUI를 만들었습니다JFileChooser를 다른 구성 요소에 포함
나는 JFileChooser로와 JList의 사이에 링크를 만들 수 없습니다입니다. 아무도 도와 줄 수 있니?
또한 내가 노력 것을 볼 수 있습니다 사람이 나를 도울 수 있다면
가 public Converter() {
setForeground(Color.BLACK);
getContentPane().setLayout(null);
textField = new JTextField();
textField.setBounds(20, 12, 714, 20);
getContentPane().add(textField);
textField.setColumns(10);
final JScrollPane scrollPane = new JScrollPane();
setTitle("ABC");
scrollPane.setBounds(0, 470, 766, -438);
getContentPane().add(scrollPane);
list = new JList();
list.setBackground(Color.LIGHT_GRAY);
list.setForeground(Color.GRAY);
vector = new Vector<File>();
field = new JTextField();
final JFileChooser fileChooser = new JFileChooser();
fileChooser.setBounds(10, 43, 485, 463);
getContentPane().add(fileChooser);
list = new JList(vector);
list.setBackground(Color.LIGHT_GRAY);
JButton btnNewButton = new JButton("ADD");
btnNewButton.setBounds(505, 106, 89, 23);
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
add();
}
private void add() {
// TODO Auto-generated method stub
{
for (File file : fileChooser.getSelectedFiles()) {
field.setText(file.getAbsolutePath());
vector.add(file);
System.out.println("Added..!!");
}
//list.updateUI();
}
}
});
getContentPane().add(btnNewButton);
JButton btnNewButton_1 = new JButton("REMOVE");
btnNewButton_1.setBounds(505, 190, 89, 23);
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
remove();
}
private void remove() {
if(list.getSelectedIndices().length > 0) {
int[] selectedIndices = list.getSelectedIndices();
for (int i = selectedIndices.length-1; i >=0; i--) {
vector.removeElementAt(i);
System.out.println("Removed..!!");
}
}
list.updateUI();
}
});
getContentPane().add(btnNewButton_1);
JButton btnNewButton_2 = new JButton("DECODE");
btnNewButton_2.setBounds(505, 278, 89, 23);
getContentPane().add(btnNewButton_2);
JList list_1 = new JList();
list_1.setForeground(Color.BLACK);
list_1.setBackground(Color.LIGHT_GRAY);
list_1.setBounds(604, 109, 162, 328);
getContentPane().add(list_1);
final JFrame Jframe = new JFrame();
Jframe.setFont(new Font("Arial", Font.BOLD, 14));
Jframe.setForeground(Color.WHITE);
Jframe.setTitle("Additional Loader Information");
Jframe.getContentPane().setLayout(null);
}
static class PreviewPane extends JPanel implements PropertyChangeListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private JLabel label;
private int maxImgWidth;
public PreviewPane() {
setLayout(new BorderLayout(5,5));
setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
add(new JLabel("Preview:"), BorderLayout.NORTH);
label = new JLabel();
label.setBackground(Color.WHITE);
label.setOpaque(true);
label.setPreferredSize(new Dimension(200, 200));
maxImgWidth = 195;
label.setBorder(BorderFactory.createEtchedBorder());
add(label, BorderLayout.CENTER);
}
public void propertyChange(PropertyChangeEvent evt) {
Icon icon = null;
if(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(evt
.getPropertyName())) {
File newFile = (File) evt.getNewValue();
if(newFile != null) {
String path = newFile.getAbsolutePath();
if(path.endsWith(".gif") || path.endsWith(".jpg")
|| path.endsWith(".png") || path.endsWith(".bmp")) {
try {
BufferedImage img =
ImageIO.read(newFile);
float width = img.getWidth();
float height = img.getHeight();
float scale = height/width;
width = maxImgWidth;
height = (width * scale);
// height should be scaled from new width
}
catch(IOException e) {
// couldn't read image.
}
}
}
label.setIcon(icon);
this.repaint();
}
}
}
public static void main(String args[]) {
// Create an instance of the test application
Converter frame = new Converter();
frame.pack();
frame.setVisible(true);
}
}
정말 도움이 될 것입니다.
은 어떻게 링크를 생성 할 수 없습니다? 오류, 예외 또는 예기치 않은 동작이 발생합니까? 문제를보다 철저하게 설명하십시오. 또한 [SSCCE] (http://sscce.org)를 만드는 것이 큰 도움이 될 것입니다. – Jeffrey
안녕하세요. 작동하지 않습니다. 어떤 오류도 발생하지 않지만 버튼을 클릭하면 아무런 동작이 일어나지 않고 전혀 작동하지 않습니다. ( – dmurali
코드에서 '새 JList (fileChooser)'(첫 번째 줄)를 던져야합니다. 오류가 발생했습니다. [SSCCE] (http://sscce.org)를 작성하거나 코드를 게시하는 것이 좋습니다. – Jeffrey