- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是我第一次发帖提问。所以请保持友好。
我的 java 程序遇到问题,文本文件无法出现在我的 JTextArea
中,我正在使用 Eclipse Luna
。
这是我的程序:
public class Frame_Cashier extends JFrame {
String[] category = {"Breakfast","Drinks","Add-ons","Desserts","Happy Meal","Value Meal"};
JComboBox comboBox = new JComboBox(category);
private JPanel contentPane;
JTextArea txtrItemId;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Frame_Cashier frame = new Frame_Cashier();
frame.setVisible(true);
frame.setLocationRelativeTo(null);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Frame_Cashier(){
Container c = getContentPane();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 759, 469);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBackground(new Color(178, 34, 34));
menuBar.setBounds(0, 0, 752, 21);
contentPane.add(menuBar);
JMenu mnFile = new JMenu("File");
mnFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});
mnFile.setForeground(new Color(255, 255, 255));
mnFile.setBackground(new Color(255, 69, 0));
mnFile.setFont(new Font("MV Boli", Font.BOLD, 15));
JMenuItem transaction = new JMenuItem("Transaction");
transaction.setForeground(new Color(255, 255, 255));
transaction.setBackground(new Color(178, 34, 34));
transaction.setFont(new Font("MV Boli", Font.BOLD, 12));
JMenuItem logout = new JMenuItem("Logout");
logout.setForeground(new Color(255, 255, 255));
logout.setBackground(new Color(178, 34, 34));
logout.setFont(new Font("MV Boli", Font.BOLD, 12));
menuBar.add(mnFile);
mnFile.add(transaction);
mnFile.add(logout);
JLabel img_background = new JLabel("");
img_background.setBackground(new Color(255, 51, 0));
Image img = new ImageIcon(this.getClass().getResource("cashier_img.jpg")).getImage();
JTextArea textArea = new JTextArea();
textArea.setEditable(false);
textArea.setBorder(new LineBorder(new Color(0, 0, 0), 3, true));
textArea.setBackground(new Color(255, 255, 204));
textArea.setBounds(380, 32, 353, 280);
contentPane.add(textArea);
JTextArea txtrItemId = new JTextArea();
txtrItemId.setBackground(new Color(255, 255, 204));
txtrItemId.setToolTipText("Item ID / Item Name");
txtrItemId.setBorder(new LineBorder(new Color(0, 0, 0), 2, true));
txtrItemId.setBounds(20, 114, 119, 150);
txtrItemId.setEditable(false);
contentPane.add(txtrItemId);
comboBox.setSelectedIndex(1);
comboBox.setSelectedIndex(5);
comboBox.setBackground(new Color(255, 255, 204));
comboBox.setBounds(20, 61, 338, 21);
contentPane.add(comboBox);
JTextArea textArea_2 = new JTextArea();
textArea_2.setEditable(false);
textArea_2.setBackground(new Color(255, 255, 204));
textArea_2.setBorder(new LineBorder(new Color(0, 0, 0), 2, true));
textArea_2.setBounds(175, 114, 72, 150);
contentPane.add(textArea_2);
JTextArea textArea_3 = new JTextArea();
textArea_3.setEditable(false);
textArea_3.setBackground(new Color(255, 255, 204));
textArea_3.setBorder(new LineBorder(new Color(0, 0, 0), 2, true));
textArea_3.setBounds(273, 114, 72, 150);
contentPane.add(textArea_3);
JTextArea textArea_1 = new JTextArea();
textArea_1.setBackground(new Color(255, 255, 204));
textArea_1.setBorder(new LineBorder(new Color(0, 0, 0), 2));
textArea_1.setBounds(63, 290, 119, 22);
contentPane.add(textArea_1);
JTextArea txtrNoImage = new JTextArea();
txtrNoImage.setBackground(new Color(255, 255, 204));
txtrNoImage.setBorder(new LineBorder(new Color(0, 0, 0), 3, true));
txtrNoImage.setText("No Image");
txtrNoImage.setBounds(202, 274, 144, 126);
contentPane.add(txtrNoImage);
JLabel lblPrice = new JLabel("Price");
lblPrice.setForeground(new Color(255, 204, 51));
lblPrice.setFont(new Font("MV Boli", Font.BOLD, 12));
lblPrice.setBounds(281, 89, 64, 14);
contentPane.add(lblPrice);
JLabel lblNewLabel_3 = new JLabel("Stock");
lblNewLabel_3.setForeground(new Color(255, 204, 51));
lblNewLabel_3.setFont(new Font("MV Boli", Font.BOLD, 12));
lblNewLabel_3.setBounds(186, 89, 48, 14);
contentPane.add(lblNewLabel_3);
JLabel lblNewLabel_2 = new JLabel("Item ID / Item Name");
lblNewLabel_2.setForeground(new Color(255, 204, 51));
lblNewLabel_2.setFont(new Font("MV Boli", Font.BOLD, 12));
lblNewLabel_2.setBounds(10, 89, 157, 14);
contentPane.add(lblNewLabel_2);
JLabel lblNewLabel_1 = new JLabel("Item I.D");
lblNewLabel_1.setForeground(new Color(255, 204, 0));
lblNewLabel_1.setFont(new Font("MV Boli", Font.BOLD, 12));
lblNewLabel_1.setBounds(0, 290, 64, 22);
contentPane.add(lblNewLabel_1);
JLabel lblNewLabel = new JLabel("Select Category");
lblNewLabel.setFont(new Font("MV Boli", Font.BOLD, 13));
lblNewLabel.setForeground(new Color(255, 204, 0));
lblNewLabel.setBounds(10, 32, 134, 31);
contentPane.add(lblNewLabel);
JButton btnNewButton_1 = new JButton("Void");
btnNewButton_1.setBackground(SystemColor.controlDkShadow);
btnNewButton_1.setBorder(new LineBorder(new Color(0, 0, 0), 2, true));
btnNewButton_1.setForeground(new Color(255, 215, 0));
btnNewButton_1.setFont(new Font("MV Boli", Font.BOLD, 13));
btnNewButton_1.setBounds(634, 340, 99, 31);
contentPane.add(btnNewButton_1);
JButton btnNewButton = new JButton("Pay");
btnNewButton.setBorder(new LineBorder(new Color(0, 0, 0), 2, true));
btnNewButton.setFont(new Font("MV Boli", Font.BOLD, 15));
btnNewButton.setForeground(new Color(255, 215, 0));
btnNewButton.setBackground(SystemColor.controlDkShadow);
btnNewButton.setBounds(380, 340, 99, 31);
contentPane.add(btnNewButton);
JButton btnNewButton_2 = new JButton("Edit");
btnNewButton_2.setBorder(new LineBorder(new Color(0, 0, 0), 2, true));
btnNewButton_2.setBackground(SystemColor.controlDkShadow);
btnNewButton_2.setFont(new Font("MV Boli", Font.BOLD, 13));
btnNewButton_2.setForeground(new Color(255, 215, 0));
btnNewButton_2.setBounds(513, 340, 89, 31);
contentPane.add(btnNewButton_2);
img_background.setIcon(new ImageIcon(img));
img_background.setAlignmentX(Component.CENTER_ALIGNMENT);
img_background.setBounds(0, 21, 752, 410);
contentPane.add(img_background);
combohandler1 ch1 = new combohandler1();
comboBox.addActionListener(ch1);
}
private class combohandler1 implements ActionListener {
public void actionPerformed(ActionEvent e){
String item1,item2,item3,item4,item5,item6;
if(comboBox.getSelectedItem().equals("Breakfast")){
try{
FileReader file = new FileReader("breakfast.txt");
BufferedReader br = new BufferedReader(file);
item1 = br.readLine();
item2 = br.readLine();
item3 = br.readLine();
item4 = br.readLine();
item5 = br.readLine();
System.out.println("test.txt");
txtrItemId.setText("\n"+item1+"\n"+item2+"\n"+item3+"\n"+item4+"\n"+item5+"\n");
br.close();
}catch(Exception x){
JOptionPane.showMessageDialog(null,"Unable to find");
}
}
}
}
}
最佳答案
您已声明文本区域两次,一次在构造函数中本地声明,一次全局声明
您将在 txtrItemId.setText();
nullPointerException
更改:JTextArea txtrItemId = new JTextArea();
至:txtrItemId = new JTextArea();
当您尝试在事件处理程序中访问 txtrItemId
时,您正在访问全局声明的变量,因为您已经初始化了构造函数中声明的变量,因此该变量(在构造函数中声明)的范围将仅限于该方法/构造函数。
关于java - 我无法使文本文件出现在我的 JTextArea 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29205110/
我有一个简单的 GUI,其中有一个 JTextArea。我创建了一个方法来从用户获取消息,另一个方法将文本附加到文本区域,如下所示 Message m = new Message(); ... pri
我正在使用 JList,并且尝试对单元格使用 JTextAreas(实现 ListCellRenderer)。它不起作用。这些单元格仅显示 ListCellRenderer.toString() 而不
此代码计算 JTextArea 的每一行并添加行数 左 JTextPane import java.awt.BorderLayout; import java.awt.Color; import ja
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我必须将一个jtextarea的内容复制到另一个jtextarea。怎么办?我已经做了以下操作:但是这个程序正在将一个jtext区域的文本逐个字符写入另一个jtext区域。我希望它在用户按下回车键时复
在我的 GUI 中,JScrollPane 中有一个附加到容器的 JTextArea。 ta = new JTextArea(); jsp = new JScrollP
我正在编写一些测试代码来练习 OOP,我想将 JTextArea 从“writeToArea”附加到定义和初始化 JTextArea 的“initialize”方法。我已经尝试直接调用“输出”变量,但
JComboBox cBox = new JComboBox(); cBox.addItem("Food"); String x = "Food"; cBox.addItem("Shi
我正在尝试将一个 JTextArea 放在 GUI 中的另一个 JTextArea 旁边 我正在为数据库编写 GUI,并希望将每列的数据放在不同的 JTextArea 中。这将使我的 GUI 看起来更
这是一个带有 JTextarea 的弹出 Jpanel,但我有一个问题。当我将鼠标移到 JTextarea 上时,它会闪烁。为什么会出现这种情况? 在 Debug模式下,鼠标移动会生成 mouseEx
我有一个类将输出显示到 JTextArea 中。意味着成功运行后,它将在文本区域中显示输出。 我还有一个主类,它将类与几个按钮组合在一起,以启动特定类中代码的执行。这个主类创建了一个带有几个按钮的 G
我的问题在于我的 DocumentLister AreaListener。我似乎无法弄清楚如何将用户输入的文本传递到一个 JTextArea 中进行转换,并将其返回到另一个 JTextArea。 该程
我有一个对象ReminderGUI其中有 JTextArea field 。 ReminderGUI代表一个可以保存和显示提醒的应用程序。当getReminderButton单击我希望应用程序找到之前
我目前正在使用 Swing 开发控制台窗口。它基于 JTextArea 并且像普通命令行一样工作。您在一行中键入一条命令,然后按回车键。在下一行中,显示了输出,在该输出下,您可以编写下一条命令。 现在
我开发了一个 Swing GUI,其中我尝试使用按钮使用另一个文本区域中的文本填充文本区域。 代码: private void jButton1ActionPerformed(java.awt.eve
当我制作时,我有一个包含 JPanel 的小型 GUI,其中有 JTextArea 和 JLabel panel1.setLayout(null); 我可以完成所需的位置,但 JTextArea 消失
我在 JDialog 框中有一个 JTabbedPane,它在 Pane 中包含的所有 JPanels 上使用 GridBagLayout 。在显示的第一个面板上有一个 JTextArea (desc
我搜索了答案,但我找到的只是解决方法,而不是原因,所以我问这个问题: 我是 GUI 编程的新手。在练习一些有关关键事件处理的代码时,我遇到了一个示例,该示例在 JFrame 中包含一个 JTextAr
将有 91 个文本区域,每个区域都显示一个值。我试图找到一种更有效的方法来解决这个问题,而不是只是盲目地添加 JTextAreas 并尝试管理 91 个文本区域中每个区域的实例化名称。 我愿意接受有关
private JPanel contentPane; public Driver() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
我是一名优秀的程序员,十分优秀!