Tying an INTERFACE to another class
OK I have built this Interface where a user can select from a range of coffees (ComboBox). When they make a choice...I then want them to click a JButton and this will start another event where the values of the certain coffee are deducted from a TOTAL value (ie milk water coffee).
I was just wondering how I could get the button to fulfill such a task !
Is it an actionListener of some sort?
Here is my code....thanxZ
/Import the relevent classes
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//define the class and set the properties for the Interface
public class InterFace extends JFrame {
private JComboBox coffeeStyle;
private String names[] = {"Extra Strong", "Black Coffee", "White Coffee"};
private JLabel label;
private JButton selectButton;
public InterFace () //set up GUI
super( "Coffee Machine" );
Container container = getContentPane();
container.setLayout(new FlowLayout());
coffeeStyle = new JComboBox (names);
coffeeStyle.setMaximumRowCount( 3 );
label = new JLabel( "Choose a Drink" );
container.add( label );
container.add( coffeeStyle);
selectButton = new JButton( "Get Drink?" );
container.add(selectButton);
setSize( 400, 200);
setVisible( true );
public static void main( String args[])
InterFace application = new InterFace();
application.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE );
selectButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Get Drink Button Pressed");
Similar Messages
-
How to get a int value from another class method?
Hi,
how can I get a value of another class method variable value.
example,
class elist
int a;
ArrayList<Event> eventArray;
void addEvent(Event e);
Event getEvent(int index);
void removeEvent(int index);
void orderEventByTime();
interface Event
void Command();
class servo implements Event
String ip;
int time = 10;
void Command();
class servo_2 implements Event
String ip;
int time = 20;
void Command();
[\code]
I want to get the time value in elist variable a;
and want to compare each class time?.Hi,
1) this foum provides means to format/tag code, no need to manually add -tags
2) by default, classname start with a capital letter, method names with a lower case letter
3) where do you want to get the time value to Elist.a? During addEvent()?
4) what do you want to do with the time value of each event? Sum all values up to make a an overall sum?
5) where do you want to compare the time value(s)?
To put it in one sentence: please be more specific with your description and answer.
Bye. -
ABAP Objects : calling one method from another class
Hi,
Can you please tell me how to call method from one class or interfce to another class.The scenario is
I have one class CL_WORKFLOW_TASK, this class have interface IF_WORKFLOW_TASK & this interface have method IF_WORKFLOW_TASK~CLOSE. Now my requirement is ,
There is another class CL_WORKFLOW_CHAIN ,this class have interface IF_WORKFLOW_CHAIN & this interface have method IF_WORKFLOW_CHAINCLOSE_ALL_PREDECESSORS. Now i have to write my code in this method but i have to use IF_WORKFLOW_TASKCLOSE method for closing the task.
Can you please give me the code for the above .
Please waiting for reply.Hi,
You can use the concept of INHERITANCE in this scenario.By using this concept, you can call all the public and protected methods of class CL_WORKFLOW_TASK in the required calss CL_WORKFLOW_CHAIN as per your requirement.
Go through the Introdctory(INHERITANCE) programming from this SAPHELP link.
http://help.sap.com/saphelp_nw70/helpdata/en/1d/df5f57127111d3b9390000e8353423/content.htm
I hope, it will help in you inresolving your problem.
by
Prasad GVK. -
Calling a function in another class that is not the App delegate nor a sngl
Hi all-
OK- I have searched and read and searched, however I cannot figure out an easy way to call a function in another class if that class is not the app delegate (I have that down) nor a singleton (done that also- but too much code)
If you use the method Rick posted:
MainView *myMainView = [[MainView alloc] init];
[MyMainView goTell];
That works, however myMainView is a second instance of the class MainView- I want to talk to the instance/Class already instantiated.
Is there a way to do that without making the class a singleton?
Thanks!I had some trouble wrapping my head around this stuff at first too.
I've gotten pretty good at letting my objects communicate with one another, however I don't think my method is the most efficient or organized way but I'll try to explain the basic idea.
When you want a class to be able to talk to another class that's initialized elsewhere, the class your making should just have a pointer in it to the class you want to communicate with. Then at some point (during your init function for example) you should set the pointer to the class you're trying to message.
for example in the app-delegate assume you have an instance of a MainView class
and the app-delegate also makes an instance of a class called WorkClass
If you want WorkClass to know about MainView just give it a pointer of MainView and set it when it's instantiated.
So WorkClass might be defined something like this
//WorkClass.h
@import "MainView.h"
@interface WorkClass : NSObject
MainView *myPointerToTheMainView;
@property (retain) myPointerToTheMainView;
-(void)tellMainViewHello;
@end
//WorkClass.m
@import "WorkClass.h"
@implementation WorkClass
@synthesize myPointerToTheMainView;//this makes getter and setter functions for
//the pointer and allows us to use the dot
//syntax to refrence it.
-(void)tellMainViewHello
[myPointerToTheMainView hello]; //sends a message to the main view
//assume the class MainView has defined a
//method -(void)hello
@end
now somewhere in the app delegate you would make the WorkClass instance and pass it a reference to the MainView class so that WorkClass would be able to call it's say hello method, and have the method go where you want (to the single instance of MainView owned by the app-delegate)
ex:
//somewhere in app-delegate's initialization
//assume MainView *theMainView exists and is instantiated.
WorkClass *myWorkClass = [[WorkClass alloc] init];
myWorkClass.myPointerToTheMainView = theMainView; //now myWorkClass can speak with
// the main view through it's
// reference to it
I hope that gets the basic idea across.
I'm pretty new to Obj-c myself so if I made any mistakes or if anyone has a better way to go about this please feel free to add
Message was edited by: kodafox -
How to call a method of another class ?
Hello,
I�d like to know how to call a method of another class. I have to classes (class 1 and class 2), class 1 instantiates an object of class 2 and executes the rest of the method. Later, class 1 has to call a method of class 2, sending a message to do something in the object... Does anybody know how to do that ? Do I have to use interface ? Could you please help me ?
Thanks.
Bruno.Hi Schiller,
The codes are the following:
COMECO
import javax.swing.UIManager;
import java.awt.*;
import java.net.*;
import java.io.*;
import java.awt.event.*;
import javax.swing.*;
//Main method
class comeco {
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
catch(Exception e) {
AGORA testeagora=new AGORA();
// Code for socket
int port;
ServerSocket server_socket;
BufferedReader input;
try {
port = Integer.parseInt(args[0]);
catch (Exception e) {
System.out.println("comeco ---> port = 1500 (default)");
port = 1500;
try {
server_socket = new ServerSocket(port);
System.out.println("comeco ---> Server waiting for client on port " +
server_socket.getLocalPort());
// server infinite loop
while(true) {
Socket socket = server_socket.accept();
System.out.println("comeco ---> New connection accepted " +
socket.getInetAddress() +
":" + socket.getPort());
input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// print received data
try {
while(true) {
String message = input.readLine();
if (message==null) break;
System.out.println("comeco ---> " + message);
testeagora.teste(message);
catch (IOException e) {
System.out.println(e);
// connection closed by client
try {
socket.close();
System.out.println("Connection closed by client");
catch (IOException e) {
System.out.println(e);
catch (IOException e) {
System.out.println(e);
AGORA
import javax.swing.UIManager;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
import java.net.*;
//public class AGORA {
public class AGORA {
boolean packFrame = false;
//Construct the application
public AGORA() {
try {
Main frame = new Main();
System.out.println("agora ---> Criou o frame");
//Validate frames that have preset sizes
//Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame)
frame.pack();
else
frame.validate();
//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height)
frameSize.height = screenSize.height;
if (frameSize.width > screenSize.width)
frameSize.width = screenSize.width;
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
catch(Exception e)
{ System.out.println("agora ---> " +e);
// Tem que criar a THREAD e ver se funciona
public void remontar (final String msg) {
try {
System.out.println("agora ---> Passou pelo Runnable");
System.out.println("agora --> Mensagem que veio do comeco para agora: "+ msg);
Main.acao(msg);
catch(Exception x) {
x.printStackTrace();
MAIN
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import javax.swing.border.*;
import java.net.*;
import java.io.*;
public class Main extends JFrame {
// ALL THE CODE OF THE INTERFACE
//Construct the frame
public Main() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
catch(Exception e) {
e.printStackTrace();
public void acao() {
// C�digo para mudar a interface
Runnable setTextRun=new Runnable() {
public void run() {
try {
System.out.println("main ---> Passou pelo Runnable");
TStatus.setText("main ---> Funcionou");
catch(Exception x) {
x.printStackTrace();
System.out.println("main ---> About to invokelater");
SwingUtilities.invokeLater(setTextRun);
System.out.println("main ---> Back from invokelater");
// Aqui vai entrar o m�todo para ouvir as portas sockets.
// Ele deve ouvir e caso haja alguma nova mensagem, trat�-la para
// alterar as vari�veis e redesenhar os pain�is
// Al�m disso, o bot�o de refresh deve aparecer ativo em vermelho
//Component initialization
private void jbInit() throws Exception {
// Initialize the interface
//Setting | Host action performed
public void SetHost_actionPerformed(ActionEvent e) {
int port;
ServerSocket server_socket;
BufferedReader input;
System.out.println("main ---> port = 1500 (default)");
port = 1500;
try {
server_socket = new ServerSocket(port);
System.out.println("main ---> Server waiting for client on port " +
server_socket.getLocalPort());
// server infinite loop
while(true) {
Socket socket = server_socket.accept();
System.out.println("main ---> New connection accepted " +
socket.getInetAddress() +
":" + socket.getPort());
input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String espaco=new String(": ");
JLabel teste2=new JLabel(new ImageIcon("host.gif"));
PHost.add(teste2);
System.out.println("main ---> Adicionou host na interface");
repaint();
System.out.println("main ---> Redesenhou a interface");
setVisible(true);
// print received data
try {
while(true) {
String message = input.readLine();
if (message==null) break;
System.out.println("main ---> " + message);
catch (IOException e2) {
System.out.println(e2);
// connection closed by client
try {
socket.close();
System.out.println("main ---> Connection closed by client");
catch (IOException e3) {
System.out.println(e3);
catch (IOException e1) {
System.out.println(e1);
public void OutHost_actionPerformed(ActionEvent e) {
repaint();
setVisible(true);
//Help | About action performed
public void helpAbout_actionPerformed(ActionEvent e) {
Main_AboutBox dlg = new Main_AboutBox(this);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.show();
//Overridden so we can exit on System Close
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if(e.getID() == WindowEvent.WINDOW_CLOSING) {
fileExit_actionPerformed(null);
public void result(final String msg) {
// C�digo para mudar a interface
Runnable setTextRun=new Runnable() {
public void run() {
try {
System.out.println("main ---> Chamou o m�todo result para mudar a interface");
System.out.println("main --> Mensagem que veio do agora para main: "+ msg);
TStatus.setText(msg);
catch(Exception x) {
x.printStackTrace();
System.out.println("main --> About to invokelater");
SwingUtilities.invokeLater(setTextRun);
System.out.println("main --> Back from invokelater");
[]�s. -
Accessing an Array List from another class
Hi, I was a member on here before, but I forgot my password and my security question is wrong.
My question is how do I access a private arraylist from a different class in the same package?
What I am trying to do is the following (hard to explain).
Make a picking client for a shop, so that when an order is recieved, the picker can click on the orders button, and view all of the current orders that have not been completed. This Pick client has its own user interface, in a seperate class from where the BoughtList array is created, in the cashier client. The boughtlist is created when the cashier puts in the product number into the cashier client and clicks buy. I seem to be having trouble accessing the list from another class. Once the order is completed the cashier clicks bought and the list is reset. There is another class in a different pagage that processes some of the functions of the order, eg newOrder().
Yes it is for Uni so I dont need / want the full answers, jist something to get started. Also please dont flame me, I have done many other parts of this project, just having trouble getting started on this one.
Here is the code for the cashier client. The code for the Pick client is almost the same, I just need to make the code that displays the orders.
package Clients;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.NumberFormat;
import java.util.Locale;
import Catalogue.*;
import DBAccess.*;
import Processing.*;
import Middle.*;
class CashierGUI
class STATE // Cashier states
public static final int PROCESS = 0;
public static final int CHECKED = 1;
class NAME // Names of buttons
public static final String CHECK = "Check";
public static final String BUY = "Buy";
public static final String CANCEL = "Cancel";
public static final String BOUGHT = "Bought";
private static final int H = 300; // Height of window pixels
private static final int W = 400; // Width of window pixels
private JLabel theAction = new JLabel();
private JTextField theInput = new JTextField();
private JTextArea theOutput = new JTextArea();
private JScrollPane theSP = new JScrollPane();
private JButton theBtCheck = new JButton( NAME.CHECK );
private JButton theBtBuy = new JButton( NAME.BUY );
private JButton theBtCancel= new JButton( NAME.CANCEL );
private JButton theBtBought= new JButton( NAME.BOUGHT );
private int theState = STATE.PROCESS; // Current state
private Product theProduct = null; // Current product
private BoughtList theBought = null; // Bought items
private Transaction theCB = new Transaction();
private StockReadWriter theStock = null;
private OrderProcessing theOrder = null;
private NumberFormat theMoney =
NumberFormat.getCurrencyInstance( Locale.UK );
public CashierGUI( RootPaneContainer rpc, MiddleFactory mf )
try //
theStock = mf.getNewStockReadWriter(); // DataBase access
theOrder = mf.getNewOrderProcessing(); // Process order
} catch ( Exception e )
System.out.println("Exception: " + e.getMessage() );
Container cp = rpc.getContentPane(); // Content Pane
Container rootWindow = (Container) rpc; // Root Window
cp.setLayout(null); // No layout manager
rootWindow.setSize( W, H ); // Size of Window
Font f = new Font("Monospaced",Font.PLAIN,12); // Font f is
theBtCheck.setBounds( 16, 25+60*0, 80, 40 ); // Check Button
theBtCheck.addActionListener( theCB ); // Listener
cp.add( theBtCheck ); // Add to canvas
theBtBuy.setBounds( 16, 25+60*1, 80, 40 ); // Buy button
theBtBuy.addActionListener( theCB ); // Listener
cp.add( theBtBuy ); // Add to canvas
theBtCancel.setBounds( 16, 25+60*2, 80, 40 ); // Cancel Button
theBtCancel.addActionListener( theCB ); // Listener
cp.add( theBtCancel ); // Add to canvas
theBtBought.setBounds( 16, 25+60*3, 80, 40 ); // Clear Button
theBtBought.addActionListener( theCB ); // Listener
cp.add( theBtBought ); // Add to canvas
theAction.setBounds( 110, 25 , 270, 20 ); // Message area
theAction.setText( "" ); // Blank
cp.add( theAction ); // Add to canvas
theInput.setBounds( 110, 50, 270, 40 ); // Input Area
theInput.setText(""); // Blank
cp.add( theInput ); // Add to canvas
theSP.setBounds( 110, 100, 270, 160 ); // Scrolling pane
theOutput.setText( "" ); // Blank
theOutput.setFont( f ); // Uses font
cp.add( theSP ); // Add to canvas
theSP.getViewport().add( theOutput ); // In TextArea
rootWindow.setVisible( true ); // Make visible
class Transaction implements ActionListener // Listener
public void actionPerformed( ActionEvent ae ) // Interaction
if ( theStock == null )
theAction.setText("No conection");
return; // No connection
String actionIs = ae.getActionCommand(); // Button
try
if ( theBought == null )
int on = theOrder.uniqueNumber(); // Unique order no.
theBought = new BoughtList( on ); // Bought list
if ( actionIs.equals( NAME.CHECK ) ) // Button CHECK
theState = STATE.PROCESS; // State process
String pn = theInput.getText().trim(); // Product no.
int amount = 1; // & quantity
if ( theStock.exists( pn ) ) // Stock Exists?
{ // T
Product pr = theStock.getDetails(pn); // Get details
if ( pr.getQuantity() >= amount ) // In stock?
{ // T
theAction.setText( // Display
pr.getDescription() + " : " + // description
theMoney.format(pr.getPrice()) + // price
" (" + pr.getQuantity() + ")" // quantity
); // of product
theProduct = pr; // Remember prod.
theProduct.setQuantity( amount ); // & quantity
theState = STATE.CHECKED; // OK await BUY
} else { // F
theAction.setText( // Not in Stock
pr.getDescription() +" not in stock"
} else { // F Stock exists
theAction.setText( // Unknown
"Unknown product number " + pn // product no.
if ( actionIs.equals( NAME.BUY ) ) // Button BUY
if ( theState != STATE.CHECKED ) // Not checked
{ // with customer
theAction.setText("Check if OK with customer first");
return;
boolean stockBought = // Buy
theStock.buyStock( // however
theProduct.getProductNo(), // may fail
theProduct.getQuantity() ); //
if ( stockBought ) // Stock bought
{ // T
theBought.add( theProduct ); // Add to bought
theOutput.setText( "" ); // clear
theOutput.append( theBought.details()); // Display
theAction.setText("Purchased " + // details
theProduct.getDescription()); //
// theInput.setText( "" );
} else { // F
theAction.setText("!!! Not in stock"); // Now no stock
theState = STATE.PROCESS; // All Done
if ( actionIs.equals( NAME.CANCEL ) ) // Button CANCEL
if ( theBought.number() >= 1 ) // item to cancel
{ // T
Product dt = theBought.remove(); // Remove from list
theStock.addStock( dt.getProductNo(), // Re-stock
dt.getQuantity() ); // as not sold
theAction.setText(""); //
theOutput.setText(theBought.details()); // display sales
} else { // F
theOutput.setText( "" ); // Clear
theState = STATE.PROCESS;
if ( actionIs.equals( NAME.BOUGHT ) ) // Button Bought
if ( theBought.number() >= 1 ) // items > 1
{ // T
theOrder.newOrder( theBought ); // Process order
theBought = null; // reset
theOutput.setText( "" ); // Clear
theInput.setText( "" ); //
theAction.setText( "Next customer" ); // New Customer
theState = STATE.PROCESS; // All Done
theInput.requestFocus(); // theInput has Focus
catch ( StockException e ) // Error
{ // Of course
theOutput.append( "Fail Stock access:" + // Should not
e.getMessage() + "\n" ); // happen
catch ( OrderException e ) // Error
{ // Of course
theOutput.append( "Fail Order process:" + // Should not
e.getMessage() + "\n" ); // happen
}(disclaimer: I did not read through your Swing code, as I find that painful)
My question is how do I access a private arraylist from a different class in the same
package?Provide a public accessor method (getMyPrivateArrayList()) -
Handeling listner and window events in another class
All if i have my one class that defines a JPanel how i put my listner events into another class.
so if i had
import javax.swing.*;
class MyFrame extends JFrame {
public MyFrame() {
setTitle("My Empty Frame");
setSize(300,200); // default size is 0,0
setLocation(10,200); // default is 0,0 (top left corner)
public static void main(String[] args) {
JFrame f = new MyFrame();
f.show();
}And then in a class WindowEvents.class i wanted to have all of the actions for any buttons
etc. How do i interface that with the main JPanel or JFrameI would make another class, for instance if you were doing an ActionListener event, you'd have a seperate class such as,
public class ButtonHandler implements ActionListener {
private YourPanelClass view;
public ButtonHandler(YourPanelClass view) {
this.view = view;
public void actionPerformed(ActionEvent e) {
//event handling code
view.updateGUI();
}Then in your main frame class, you'd want an updateGUI(); method which would perform the actions required and to add the event to your button you'd do something like this:
ImageIcon upIcon = new ImageIcon("navigationIcons/Up24.gif", "Up Button");
JButton upBtn = new JButton(upIcon);
upBtn.setToolTipText("Up");
UpdateButtonHandler ubh = new UpdateButtonHandler(this);
upBtn.setActionCommand("bob");
upBtn.addActionListener(ubh);I'm actually having a simular problem to you, where as I have 1 class for my main frame, one class for my button panel with the buttons on and 1 class for my graphics cpt which im moving about via pressing the buttons. Then another class for my actionListener event, im finding it hard to get the event to work correctly because the updateGUI(); method theoretically needs to be placed inside my button panel class, but if I do that I can't seem to update the graphics cpt properly to actually move it, unless I do it in the main frame class which then means I can't have a seperate class for my button panel. Anyone got any ideas on a solution? -
Is it possible to call methods from another class from within an abstract c
Is it possible to call methods from another class from within an abstract class ?
I found an example in teh JDK 131 JFC that may help you. I t is using swing interface and JTable
If you can not use Swing, then you may want to do digging or try out with the idea presented here in example 3
Notice that one should refine the abstract table model and you may want to create a method for something like
public Object getValuesAtRow(int row) { return data[row;}
to give the desired row and leave the method for
getValuesAt alone for getting valued of particaular row and column.
So Once you got the seelcted row index, idxSelctd, from your table
you can get the row or set the row in your table model
public TableExample3() {
JFrame frame = new JFrame("Table");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}});
// Take the dummy data from SwingSet.
final String[] names = {"First Name", "Last Name", "Favorite Color",
"Favorite Number", "Vegetarian"};
final Object[][] data = {
{"Mark", "Andrews", "Red", new Integer(2), new Boolean(true)},
{"Tom", "Ball", "Blue", new Integer(99), new Boolean(false)},
{"Alan", "Chung", "Green", new Integer(838), new Boolean(false)},
{"Jeff", "Dinkins", "Turquois", new Integer(8), new Boolean(true)},
{"Amy", "Fowler", "Yellow", new Integer(3), new Boolean(false)},
{"Brian", "Gerhold", "Green", new Integer(0), new Boolean(false)},
{"James", "Gosling", "Pink", new Integer(21), new Boolean(false)},
{"David", "Karlton", "Red", new Integer(1), new Boolean(false)},
{"Dave", "Kloba", "Yellow", new Integer(14), new Boolean(false)},
{"Peter", "Korn", "Purple", new Integer(12), new Boolean(false)},
{"Phil", "Milne", "Purple", new Integer(3), new Boolean(false)},
{"Dave", "Moore", "Green", new Integer(88), new Boolean(false)},
{"Hans", "Muller", "Maroon", new Integer(5), new Boolean(false)},
{"Rick", "Levenson", "Blue", new Integer(2), new Boolean(false)},
{"Tim", "Prinzing", "Blue", new Integer(22), new Boolean(false)},
{"Chester", "Rose", "Black", new Integer(0), new Boolean(false)},
{"Ray", "Ryan", "Gray", new Integer(77), new Boolean(false)},
{"Georges", "Saab", "Red", new Integer(4), new Boolean(false)},
{"Willie", "Walker", "Phthalo Blue", new Integer(4), new Boolean(false)},
{"Kathy", "Walrath", "Blue", new Integer(8), new Boolean(false)},
{"Arnaud", "Weber", "Green", new Integer(44), new Boolean(false)}
// Create a model of the data.
TableModel dataModel = new AbstractTableModel() {
// These methods always need to be implemented.
public int getColumnCount() { return names.length; }
public int getRowCount() { return data.length;}
public Object getValueAt(int row, int col) {return data[row][col];}
// The default implementations of these methods in
// AbstractTableModel would work, but we can refine them.
public String getColumnName(int column) {return names[column];}
public Class getColumnClass(int col) {return getValueAt(0,col).getClass();}
public boolean isCellEditable(int row, int col) {return (col==4);}
public void setValueAt(Object aValue, int row, int column) {
data[row][column] = aValue;
}; -
A have my "main" class (a JPanel) and the thing I want to do is simply to access another class' data and methods through my main class (That class also extending JPanel and is added together with the main class to a JFrame in a third class). The thing is i have this JTextPane that i wished to edit from my main class. Like:
//Main class
public class Main extends JPanel {
private class Listener implements KeyListener{
public void keyPressed(KeyEvent ke) {
if (ke.getKeyCode() == foo){
//Do like:
Log.appendLogText(bar);
}//My JTextPane handling class
public class Log extends JPanel {
private JTextPane logText;
public Log(){
logText = new JTextPane();
logText.setContentType("text/html");
public void appendLogText(String str){
String text = str;
Document textDoc = tempLogText.getDocument();
int end = textDoc.getLength();
try {
textDoc.insertString(end, text, logText.getLogicalStyle());
logText.setText(textDoc.getText(0, textDoc.getLength()));
} catch (BadLocationException e) {}
}This is just scraps of code, if there is a better way to do it please tell me, what i want is (again) simply one JPanel displaying something where you can edit the JTextPane in another JPanel (and class).public class Main extends JPanel {
private Log log;
public void setLog(Log log) {
this.log = log;
log.appendLogText(bar);
}It's up to the builder code that instantiates Main and Log classes to call:
tehMain.setLog(tehLog);For an extra schmear of abstraction, you can do this variant:
public interface ILog {
void appendLogText(String s);
public class Main extends JPanel {
private ILog log;
public void setLog(ILog log) {
this.log = log;
log.appendLogText(bar);
public class Log extends JPanel implements ILog {...}That way, you can pass Main other ILogs -- for testing Main, for example. -
.How to instantiate the innerclass from another class with coded eg.
How to instantiate the innerclass from another class(both for static & non static) please give me an eg with coding.
It's just a preference, but I like writing factory methods:
public class Outer {
public class Inner {}
public static class StaticInner {}
public Inner innerInstance() {
return new Inner();
public static StaticInner staticInnerInstance() {
return new StaticInner();
public static void main(String[] args) {
Outer.StaticInner si = Outer.staticInnerInstance();
Outer outer = new Outer();
Outer.Inner i = outer.innerInstance();
}Often, for me, the inner class implements an interface, and the factory method
lets you hide the implementation class:
public class Outer {
private class Inner implements Runnable {
public void run() {}
public Runnable runnerInstance() {
return new Inner();
public static void main(String[] args) {
Outer outer = new Outer();
Runnable r = outer.runnerInstance();
} -
Abstract classes, Interfaces, and concrete classes
I have another technical interview tomorrow and somehow I keep getting asked the same question and I feel my answer is not really up to par. The question is:
"What is the advantage of subclassing an abstract class versus concrete class?"
"What is the difference of using an interface versus an abstract class, which is better to use?"
For the first question, I usually answer performance is the advantage because you don't have to instantiate the class.
For the second question, I usually say that you can put implementation in an abstract class and you can't in an interface. I really can't answer the second part to this question.
Any ideas?For the first question, I usually answer performance
is the advantage because you don't have to instantiate
the class. Try invoking the class B in the following somewhere in another class.
abstract class A{
A(){
System.out.println("abstract instantiated");
class B extends A{
B(){super();}
} -
How to declare interface within a class
1. I want to declare interface within a class. How can i do that & whats the advantage ?
2. How to declare class within a interface ?
Can anybody tell me the concept ?/
Thanks in advance
madhuClasses and interfaces are types.
What is the advantage of declaring a type within another one?
Do you know what is the advantage of declaring a class within another class? -
Interface extending another interface
Hi, i seem to have trouble finding on the internet what happends when one interface extends another interface. Can you explain it here or give me some link where i can find such information. Thanks
have you tried to create on yet? sometimes the best way to learn is just to do it.
the truth is, extension of an interface is no different than the extension of a regular class. when you finally implement your subClassed interface, you will just have to remember to add all unImplemented methods of both interfaces. generally for soemthing like this its best to just implement multiple interfaces so that you will always know what you need to implement before run time otherwise you are bound to receive a lot of errors for not having implemented those methods. -
Get the values of hashmap in another class
Hi All,
i already posted this topic yesterday..But i did not get any helpful response..Kindly help me because I am new to java and I need some help regarding hashmap..
I have a one value object java class which name is HashTestingVO.java
*******************************************INPUT OF HashTestingVO.java***************************************
public class HashTestingVO extends PersistentVO implements ILegalWorkFlowACLVO {
public final static HashMap legalReviewPieceRelatedACLMap = new HashMap();
legalReviewPieceRelatedACLMap.put("Futhure Path Check","ereview_acl_piece_related_cat1");
legalReviewPieceRelatedACLMap.put("Send to Legal Review","ereview_acl_piece_related_cat1");
legalReviewPieceRelatedACLMap.put("Review Precondition","ereview_acl_piece_related_cat1");
Now i want to get the Hash Map values of this in another class called Testing.java class
Ex: i need the value like this in Testing.java
HashTestingVO obj=new HashTestingVO();
obj.get(Futhure Path Check) -----------> I want to get the value of key1
Public means you can access it another class..
But Static means within the class we will use it...already posted this topic yesterday..But i did not get any helpful response..Kindly help me because I am new to java and I need some help regarding hashmap..I thing Exposing your dataStructure to any other class is not the right practise.
You can make the Hashmap object private and nonstatic and provide a getter method in this class to get the value corresponding to any particular key.
public Object getValue(String key)
return egalReviewPieceRelatedACLMap.get(key);
} -
Getting values from a JTextField on a JPanel in another class
I have created a class which extends a JPanel and added a JTextField to it, which has an addActionListener for getting the values typed in the JTextField. I want to use the class created in another class and retrieve the values typed in the JTextField, so how do i go about that? I have the class created below so the problem is how to retrieve content of val[val] in another class?
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TextFieldChooser extends JPanel{
int val;
public TextFieldChooser(String str){
val = 0;
setLayout(new FlowLayout());
add(new JLabel(str));
JTextField txtf = new JTextField(5);
txtf.addActionListener(new TextFieldListener());
add(txtf);
}//end constructor
private class TextFieldListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
val = Integer.parseInt(e.getActionCommand());
}//end text field listener
public int getValue(){
return val;
}//classThe problem is which listener can be programmed to handle the event performed on the class TextFieldChooser in the other class?
I have created a class which extends a JPanel and
added a JTextField to it, which has an
addActionListener for getting the values typed in the
JTextField. I want to use the class created in
another class and retrieve the values typed in the
JTextField, so how do i go about that? I have the
class created below so the problem is how to retrieve
content of val[val] in another class?
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TextFieldChooser extends JPanel{
int val;
public TextFieldChooser(String str){
val = 0;
setLayout(new FlowLayout());
add(new JLabel(str));
JTextField txtf = new JTextField(5);
txtf.addActionListener(new TextFieldListener());
add(txtf);
}//end constructor
private class TextFieldListener implements
s ActionListener{
public void actionPerformed(ActionEvent e) {
val = Integer.parseInt(e.getActionCommand());
}//end text field listener
public int getValue(){
return val;
}//class
Maybe you are looking for
-
How can I reduce the file size of 3 videos?...
...without losing quality? These three videos are as follows in terms of size and length of the video: 1) 148MB 19minutes 2) 357MB 18minutes 3) 164MB 14minutes I tried using a video converter to reduce the bit rate in order to reduce the size, which
-
Help needed for creating new component in web ui
hi experts, i need documentation on the component workbench. i need to cretae a new assignment block in web UI, similar ti the items assignemnt block in opportunity screen. Where can i find material to learn how to develop new components using
-
How to view *.eml files in Lotus Notes as native application?
Using Desktop Integration for Lotus Notes, and using Contribution Folders via Notes: I can drop-and-drag an e-mail from lotus notes inbox to the contribution folder (in Notes) ok. I can view the *.eml file in Contribution Folder (Notes and Explorer),
-
When I try to open itunes, I get message cannot open this file because it was created by a newer version CAn anyone help?
-
Was wondering if the experts out there could help this newbie. When I export my Motion project as a mp4 or other QuickTime movie, everything looks as it should. If I try to export using Compressor or Import directly into DVDSP, the background image i