suso
17-04-2006, 14:30
hey leute !
hab ein Problem:
- ich hab ein JFrame, darauf liegt eine JScrollPane, darauf liegt eine JTextArea...
- ich will ein Background image für die JFrame festlegen - kann dabei aber keine Graphics verwenden, da die Klasse nicht von JFrame, sonder von einer meiner Eigenen Klassen abgeleitet ist, die wiederum von einem Thread abgeleitet ist.
- hier der Source:
/*
* DChatWindow.java
*
* Created on 6. April 2006, 10:26
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package src.client;
import java.awt.BorderLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;
import src.workerClasses.*;
import java.awt.event.AdjustmentListener;
import java.awt.event.AdjustmentEvent;
import java.awt.Color;
/**
*
* @author Manfred
*/
public class DChatWindow extends ChatWorker {
JFrame jf = new JFrame();
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JScrollPane jsp = new JScrollPane();
JTextArea ta = new JTextArea();
JTextField input = new JTextField();
private javax.swing.JMenuBar MenueBar;
private javax.swing.JMenu Menue;
private javax.swing.JMenuItem MIExit;
String toNic = "";
String identification = "";
ClientView f = null;
public String getToNic() {
return toNic;
}
/** Creates a new instance of DChatWindow */
public DChatWindow(String id, String nic, String curServer, ClientView f) {
jf.setTitle(id + " chats with : " + nic);
identification = id;
toNic = nic;
this.f = f;
super.setId(id);
super.setServer(curServer);
connectComponents();
startUp();
jf.setDefaultCloseOperation(0);
styleIt();
}
private void connectComponents() {
MenueBar = new JMenuBar();
Menue = new JMenu("Menue");
MIExit = new JMenuItem("Exit");
MenueBar.add(Menue);
Menue.add(MIExit);
jf.setLayout(new BorderLayout());
jf.add(jp1, BorderLayout.CENTER);
jf.add(jp2, BorderLayout.SOUTH);
jf.add(MenueBar, BorderLayout.NORTH);
jp1.setLayout(new BorderLayout());
ta.setColumns(20);
ta.setEditable(false);
ta.setLineWrap(true);
ta.setRows(5);
jsp.setViewportView(ta);
jsp
.setHorizontalScrollBarPolicy(ScrollPaneConstants. HORIZONTAL_SCROLLBAR_NEVER);
jp1.add(jsp, BorderLayout.CENTER);
jp2.setLayout(new BorderLayout());
jp2.add(input);
jp1.updateUI();
jp2.updateUI();
jf.pack();
jf.setSize(400, 300);
}
private void styleIt() {
Image javabliss = Toolkit.getDefaultToolkit().getImage(
getClass().getResource("/src/images/javabliss.jpg"));
Image javacup = Toolkit.getDefaultToolkit().getImage(
getClass().getResource("/src/images/javacup.jpg"));
jsp.setOpaque(true);
ta.setForeground(Color.BLACK);
ta.setOpaque(true);
input.setBackground(Color.BLUE);
input.setBackground(Color.WHITE);
input.setOpaque(true);
}
public void onClose() {
f.removeChatWindow(toNic);
jf.setVisible(false);
}
private void startUp() {
jf.setVisible(true);
input.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
onInputKeyPressed(evt);
}
});
MIExit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
onClose();
}
});
jsp.getVerticalScrollBar().addAdjustmentListener(
new AdjustmentListener() {
public void adjustmentValueChanged(AdjustmentEvent e) {
ta.select(ta.getHeight() + 1000, 0);
}
});
}
private void onInputKeyPressed(KeyEvent evt) {
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
String message = input.getText();
input.setText("");
ta.setText(ta.getText() + formatMessage(identification, message));
super.sendMessage(message, toNic);
}
}
public void printMessageToOutput(String from, String message) {
String messageToWrite = formatMessage(from, message);
ta.setText(ta.getText() + messageToWrite);
}
private String formatMessage(String id, String message) {
String finalMessage = "";
finalMessage = "\n" + "<" + id + ">" + message;
return finalMessage;
}
}
- das ist der ganze klassencode, für die die's sich anschauen wollen..
- die Methode styleIt() sollte das Image javabliss als background der JFrame setzen, sodass es noch immer sichtbar ist . - geht das überhaupt ?!?
- hier die Methode nochmal:
private void styleIt() {
Image javabliss = Toolkit.getDefaultToolkit().getImage(
getClass().getResource("/src/images/javabliss.jpg"));
Image javacup = Toolkit.getDefaultToolkit().getImage(
getClass().getResource("/src/images/javacup.jpg"));
jsp.setOpaque(true);
ta.setForeground(Color.BLACK);
ta.setOpaque(true);
input.setBackground(Color.BLUE);
input.setBackground(Color.WHITE);
input.setOpaque(true);
}
wär schön wenn ihr euch das mal anschauen könntet !!
danke, suso
hab ein Problem:
- ich hab ein JFrame, darauf liegt eine JScrollPane, darauf liegt eine JTextArea...
- ich will ein Background image für die JFrame festlegen - kann dabei aber keine Graphics verwenden, da die Klasse nicht von JFrame, sonder von einer meiner Eigenen Klassen abgeleitet ist, die wiederum von einem Thread abgeleitet ist.
- hier der Source:
/*
* DChatWindow.java
*
* Created on 6. April 2006, 10:26
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package src.client;
import java.awt.BorderLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;
import src.workerClasses.*;
import java.awt.event.AdjustmentListener;
import java.awt.event.AdjustmentEvent;
import java.awt.Color;
/**
*
* @author Manfred
*/
public class DChatWindow extends ChatWorker {
JFrame jf = new JFrame();
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JScrollPane jsp = new JScrollPane();
JTextArea ta = new JTextArea();
JTextField input = new JTextField();
private javax.swing.JMenuBar MenueBar;
private javax.swing.JMenu Menue;
private javax.swing.JMenuItem MIExit;
String toNic = "";
String identification = "";
ClientView f = null;
public String getToNic() {
return toNic;
}
/** Creates a new instance of DChatWindow */
public DChatWindow(String id, String nic, String curServer, ClientView f) {
jf.setTitle(id + " chats with : " + nic);
identification = id;
toNic = nic;
this.f = f;
super.setId(id);
super.setServer(curServer);
connectComponents();
startUp();
jf.setDefaultCloseOperation(0);
styleIt();
}
private void connectComponents() {
MenueBar = new JMenuBar();
Menue = new JMenu("Menue");
MIExit = new JMenuItem("Exit");
MenueBar.add(Menue);
Menue.add(MIExit);
jf.setLayout(new BorderLayout());
jf.add(jp1, BorderLayout.CENTER);
jf.add(jp2, BorderLayout.SOUTH);
jf.add(MenueBar, BorderLayout.NORTH);
jp1.setLayout(new BorderLayout());
ta.setColumns(20);
ta.setEditable(false);
ta.setLineWrap(true);
ta.setRows(5);
jsp.setViewportView(ta);
jsp
.setHorizontalScrollBarPolicy(ScrollPaneConstants. HORIZONTAL_SCROLLBAR_NEVER);
jp1.add(jsp, BorderLayout.CENTER);
jp2.setLayout(new BorderLayout());
jp2.add(input);
jp1.updateUI();
jp2.updateUI();
jf.pack();
jf.setSize(400, 300);
}
private void styleIt() {
Image javabliss = Toolkit.getDefaultToolkit().getImage(
getClass().getResource("/src/images/javabliss.jpg"));
Image javacup = Toolkit.getDefaultToolkit().getImage(
getClass().getResource("/src/images/javacup.jpg"));
jsp.setOpaque(true);
ta.setForeground(Color.BLACK);
ta.setOpaque(true);
input.setBackground(Color.BLUE);
input.setBackground(Color.WHITE);
input.setOpaque(true);
}
public void onClose() {
f.removeChatWindow(toNic);
jf.setVisible(false);
}
private void startUp() {
jf.setVisible(true);
input.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
onInputKeyPressed(evt);
}
});
MIExit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
onClose();
}
});
jsp.getVerticalScrollBar().addAdjustmentListener(
new AdjustmentListener() {
public void adjustmentValueChanged(AdjustmentEvent e) {
ta.select(ta.getHeight() + 1000, 0);
}
});
}
private void onInputKeyPressed(KeyEvent evt) {
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
String message = input.getText();
input.setText("");
ta.setText(ta.getText() + formatMessage(identification, message));
super.sendMessage(message, toNic);
}
}
public void printMessageToOutput(String from, String message) {
String messageToWrite = formatMessage(from, message);
ta.setText(ta.getText() + messageToWrite);
}
private String formatMessage(String id, String message) {
String finalMessage = "";
finalMessage = "\n" + "<" + id + ">" + message;
return finalMessage;
}
}
- das ist der ganze klassencode, für die die's sich anschauen wollen..
- die Methode styleIt() sollte das Image javabliss als background der JFrame setzen, sodass es noch immer sichtbar ist . - geht das überhaupt ?!?
- hier die Methode nochmal:
private void styleIt() {
Image javabliss = Toolkit.getDefaultToolkit().getImage(
getClass().getResource("/src/images/javabliss.jpg"));
Image javacup = Toolkit.getDefaultToolkit().getImage(
getClass().getResource("/src/images/javacup.jpg"));
jsp.setOpaque(true);
ta.setForeground(Color.BLACK);
ta.setOpaque(true);
input.setBackground(Color.BLUE);
input.setBackground(Color.WHITE);
input.setOpaque(true);
}
wär schön wenn ihr euch das mal anschauen könntet !!
danke, suso