Hallo,
Ich habe hier einen Code, ich kann ihn jedoch nicht zum laufen bringen, da meine main-methode (ganz unten im code) von eclipse nicht akzeptiert wird. "Unhandled exeception type IO Exception" ist die Fehlermeldung. Kann mir jemand weiterhelfen?
Vielen Dank schon jetzt
Ich habe hier einen Code, ich kann ihn jedoch nicht zum laufen bringen, da meine main-methode (ganz unten im code) von eclipse nicht akzeptiert wird. "Unhandled exeception type IO Exception" ist die Fehlermeldung. Kann mir jemand weiterhelfen?
Vielen Dank schon jetzt
Java:
package carcasonne.chat;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.border.EtchedBorder;
import javax.swing.text.JTextComponent;
import carcasonne.menue.GameView;
import carcasonne.user.User;
public class ChatView extends JFrame implements ActionListener
{
private JPanel contentPane;
private JPanel containsTextPanel;
private JList <String> list;
private JTextField textField;
DefaultListModel <String> model;
ChatControler aControler;
File file;
BufferedImage img;
Graphics graphic;
public void startView(ChatControler aControler)
{
this.aControler = aControler;
this.setVisible(true);
}
/**
* Erzeugen der Ausgabe
* @throws IOException
*/
public ChatView() throws IOException
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Festlegung der Größe und Position; manuelle Größenveränderung nicht möglich
setBounds(0, 0, 500, 600);
setResizable (false);
JPanel contentPane = new JPanel ();
contentPane.setLayout(new BorderLayout());
setContentPane(contentPane);
File file = new File("paintings/schriftRolle01.jpg");
final BufferedImage image = ImageIO.read(file);
JPanel imagePanel = new JPanel()
{
@Override
public void paintComponent(Graphics g) {
//Anpassung der Fenstergröße an Bildgröße durch getter
g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), null);
}
};
//imagePanel mit CardLayout -> JList und JTextfield können darauf angeordnet werden
imagePanel.setLayout(new CardLayout(0, 0));
//containsTextPanel mit absolute Layout
JPanel containsTextPanel = new JPanel ();
containsTextPanel.setBackground(new Color(102, 51, 0));
//auf durchsichtig setzen
containsTextPanel.setOpaque (false);
//absolute Layout setzen -> manuelle Positionierung möglich
containsTextPanel.setLayout(null);
//beinhaltet den Chatverlauf
model = new DefaultListModel<String>();
list = new JList<String>();
list.setForeground(new Color(51, 0, 0));
list.setFont(new Font("Papyrus", Font.BOLD, 18));
list.setModel(model);
list.setBounds(205, 105, 200, 308);
//auf durchsichtig setzen
list.setOpaque(false);
list.setBackground(new Color (0, 0, 0, 0));
containsTextPanel.add(list);
// Erzeugen eines neuen Textfeldes - Eingabefenster
textField = new JTextField();
textField.setFont(new Font("Papyrus", Font.BOLD, 13));
//auf durchsichtig setzen
textField.setOpaque(false);
textField.setBackground(new Color(0, 0, 0));
//festgelegte Position
textField.setBounds(204, 485, 230, 25);
textField.setColumns(10);
containsTextPanel.add(textField);
textField.addActionListener(this);
//containsTextPanel zu imagePanel hinzufügen
imagePanel.add (containsTextPanel);
contentPane.add (imagePanel, BorderLayout.CENTER);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == textField ) {
//model.addElement(textField.getText());
list.setModel(model);
aControler.sendMessage(textField.getText());
this.revalidate();
}
}
public void printToScreen(String sMessage)
{
model.addElement(sMessage);
}
public static void main(String[] args) {
new ChatView();
}
}
Zuletzt bearbeitet von einem Moderator: