Итак, я разрабатываю приложение на основе GUI, которое считывает данные из Excel с использованием Apache POI и отображает их с помощью приложения на основе JAVA AWT/SWING
Window. Итак, для начала я интегрировал Apache POI
в GUI
на основе JAVA
проекта.
Итак, теперь я пытаюсь получить доступ к данным конкретной ячейки из Excel и распечатать их в приложении GUI. Я разобрался, как получить конкретные данные ячейки из Excel в Java и как использовать Jlabel
. Чтобы продолжить, мне нужно отправить данные ячейки в JLabel
.
Я сделал следующее, чтобы получить данные ячейки: Очевидно, у нас есть cell
объект из Cell
класса. Как отправить эти cell
данные на JLabel
?
У меня есть следующий код для JLabel
.
try (InputStream inp = new FileInputStream("C:\\Users\\mohin\\OneDrive\\Desktop\\a.xlsx")) {
Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt(0);
Row row = sheet.getRow(2);
Cell cell = row.getCell(2);
if (cell != null)
System.out.println("Data: "+cell);
else
System.out.println("Cell is empty");
}catch(Exception e) {
System.out.println(e);
}
Очевидно, что у нас есть cell
объект из Cell
учебный класс. Как отправить эти cell
данные на JLable
?
У меня есть следующий код для JLable
.
Здесь после нажатия кнопки содержимое Lable
изменяется .
lblNewLabel = new JLabel("Hey there. Your GPA is");
lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 18));
lblNewLabel.setBounds(100, 46, 298, 55);
frame.getContentPane().add(lblNewLabel);
JButton btnNewButton = new JButton("Show me!");
btnNewButton.setForeground(Color.BLUE);
btnNewButton.setFont(new Font("Microsoft YaHei UI", Font.BOLD, 16));
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//JOptionPane.showMessageDialog(null, "Hello World!");
lblNewLabel.setText(cell);
}
});
lblNewLabel.setText(cell);
Но он показывает ошибку. Я даже объявил новую строку и передал ее используя cell
объект. Но это тоже не сработало.
Я ищу способ передать выходные данные из ячейки в JLabel
.
Оба в основной функции.
Ниже приведен весь код.
package com;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Font;
import java.awt.Color;
import javax.swing.JTextField;
import javax.swing.JLabel;
public class GUI {
private JFrame frame;
private JLabel lblNewLabel;
private JTextField textField;
private JTextField textField_1;
private JLabel lblNewLabel_1;
private JTextField textField_2;
/**
* Launch the application.
*/
public static void main(String[] args) {
try (InputStream inp = new FileInputStream("C:\\Users\\mohin\\OneDrive\\Desktop\\a.xlsx")) {
Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt(0);
Row row = sheet.getRow(2);
Cell cell = row.getCell(2);
if (cell != null)
System.out.println("Data: "+cell);
else
System.out.println("Cell is empty");
}catch(Exception e) {
System.out.println(e);
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
GUI window = new GUI();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public GUI() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 605, 418);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JButton btnNewButton = new JButton("Show me!");
btnNewButton.setForeground(Color.BLUE);
btnNewButton.setFont(new Font("Microsoft YaHei UI", Font.BOLD, 16));
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//JOptionPane.showMessageDialog(null, "Hello World!");
lblNewLabel.setText(cell);
}
});
btnNewButton.setBounds(147, 133, 130, 31);
frame.getContentPane().add(btnNewButton);
lblNewLabel = new JLabel("Hey there. Your GPA is");
lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 18));
lblNewLabel.setBounds(100, 46, 298, 55);
frame.getContentPane().add(lblNewLabel);
textField = new JTextField();
textField.setBounds(63, 214, 96, 19);
frame.getContentPane().add(textField);
textField.setColumns(10);
textField_1 = new JTextField();
textField_1.setBounds(342, 214, 96, 19);
frame.getContentPane().add(textField_1);
textField_1.setColumns(10);
lblNewLabel_1 = new JLabel("Answer-");
lblNewLabel_1.setFont(new Font("Tahoma", Font.PLAIN, 24));
lblNewLabel_1.setBounds(139, 323, 122, 48);
frame.getContentPane().add(lblNewLabel_1);
textField_2 = new JTextField();
textField_2.setBounds(301, 329, 174, 42);
frame.getContentPane().add(textField_2);
textField_2.setColumns(10);
JButton btnNewButton_1 = new JButton("Multiply");
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int a,b,ans;
try {
a=Integer.parseInt(textField.getText());
b=Integer.parseInt(textField_1.getText());
ans=a*b;
textField_2.setText(Integer.toString(ans));
}catch(Exception e1) {
JOptionPane.showMessageDialog(null,"Enter valid number");
}
}
});
btnNewButton_1.setBounds(90, 264, 85, 21);
frame.getContentPane().add(btnNewButton_1);
JButton btnNewButton_2 = new JButton("Divide");
btnNewButton_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int a,b,ans;
try {
a=Integer.parseInt(textField.getText());
b=Integer.parseInt(textField_1.getText());
ans=a/b;
textField_2.setText(Integer.toString(ans));
}catch(Exception e2) {
JOptionPane.showMessageDialog(null,"Enter valid number");
}
}
});
btnNewButton_2.setBounds(330, 264, 85, 21);
frame.getContentPane().add(btnNewButton_2);
}
}
Не обращайте внимания на все остальные GUI коды. Это просто несколько кнопок, текстовых полей.