 |
 |
Index ‹ java-programmer
|
- Previous
- 2
- 3
- New book on web services and Apache Axis availableHi,
A new book "Developing Web Services with Apache Axis" is now available.
If you'd like to learn to create web services (in particular, using
Apache Axis) and make some sense of various standards like SOAP, WSDL,
JAX-RPC, SOAP with attachments, WS-Security, XML Encryption and XML
Signature, then please check it out at http://www.agileskills2.org/DWSAA
- 3
- mail parser ?Hi
I am programming a smtp proxy and i would like to parse the email (in
rfc 822 format). Does a library already exist ?
many thanks
- 3
- To class or to methodI have a class
public class CascadeAction {
...
public CascadeAction(JDesktopPane ... ) {
}
...
public void setIgnoreIconified(...) {
...
}
public void actionPerformed(ActionEvent evt) {
...
}
...
}
Instead of having a class, is the proper way to create a method :
public void cascadeFrames(JDesktopPane desktopPane, int layer, boolean
ignoreIconified) {
...
}
I don't think I should place this method in a subclass of JDesktopPane
since doing so will make it impossible for other users to use the
cascade feature if they already have their own custom JDesktopPane.
Please advice me on the proper way.
- 3
- How to validate XSLT output in java?Howdi,
This should be simple but I am lost in the maze of java xml/xsl
classes. Given a dom Document and an xsl Templates object I want to
run the document through a transformer and validate the output against
a schema and then return the output xml as another Document.
At the moment the only way I can work out how to do this is by
writing the xslt output to a File, then parsing it back in from the
File with validation enabled.. How do I do it directly? Here is where
I have got too. I am working with Java 1.4.2 default implementation.
Regards,
Damon.
====================
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXResult;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
public class ValidatingTransform {
public static Document transformXMLDocumentWithValidate(Document
in,
Templates template) throws Exception {
if (in == null)
throw (new Exception("Input document is null"));
// What goes here?
SAXResult result = null;
// Get a transformer from the template
Transformer transformer = template.newTransformer();
transformer.transform(new DOMSource(in), result);
// What goes here??
InputSource source = null;
// Parse the output into a dom with validation
// I am assuming the XSLT output will contain a valid
schemaLocation
DocumentBuilderFactory dbFactory =
DocumentBuilderFactory.newInstance();
dbFactory.setNamespaceAware(true);
dbFactory.setValidating(true);
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document docResult = dBuilder.parse(source);
return docResult;
}
}
- 3
- Typing number from idle screenHi All,
Can anyone give me a sample code in J2ME how to bring a screen such
that you can type in numbers in the idle screen to make a call?
- 3
- Constructors + Information HidingI have a random question about a constructor having access to a private
instance variable from an object of the same type.
Class:
public class VarTest {
private int x;
private String s;
public VarTest(){
x = 10;
s = "Testing";
}
public VarTest(int i, String str){
x = i;
s = str;
}
//I know why this would be a useful constructor,
// but why is this allowed if the instance variables for
// vt are private?????
public VarTest(VarTest vt){
x = vt.x;
s = vt.s;
}
public int getX(){
return x;
}
public String getS(){
return s;
}
}
Test Class:
public class Tester{
public static void main(String args[]){
VarTest var1, var2;
var1 = new VarTest(34, "Working?");
var2 = new VarTest(var1);
System.out.println("var2 - x:\t" + var2.getX());
//var2.getX() display 34... Why can is get that from var1?
}
}
Thanks In Advance Folks,
Josh
- 3
- Positioning dialogboxes created with JOptionPaneThe dialog boxes created using JOptionPane like showConfirmDialog,
showInputDialog gets displayed in the centre of the screen. I need to change
its position. How to do this?
These methods return int or none.
How to get access to the dialog boxes so that they
can be positioned by using appropriate method? or I need to create a custom
dialog box so that they can be positioned?
- 4
- replace scrollbar by buttonHi everybody
I would like to suppress scroll bar and replace it by narrow, let
explain me.
I' ve got a panel with flowlayout with many component, textarea,
combobox, button. it is impossible to see all.
I can use scroll panel but it's not nice in my opinion
So I would like a button with an arrow left, at the left of the panel
and a button with an arrow right at the right of the panel, everytime
visible
click on arrow left, let see the lefter components, click on arrow
right, let see the righter components. In brief I would to navigate on
components using the arrows. I hope it's clear.
My first idea is to create a parent panel with border layout, on west
and east the navigate button and in the center will contains my components.
Do you thing it's a good a way ?
Do you know some sources that always do it ?
Thank you helping me
Antoine
- 5
- how do i paste into eclipsei just downloaded eclipse 3, but i can't seem to paste text into it. all it
gives me is the first character. is there a way i can paste, because it
would be a headache to type out everything needed
- 7
- Calling Stored procedure within the Orcale Server or outside clientHi all,
I have liitle confusion about the stored procedures. I am doing the
Database purging using stored procedures in Oracle 9g. can you tell is
it better to call stored procedures from outside client which i will
take care of the flow in which stored procedues are called or call it
from JAVA STORED PROCEDURS loaded in the database, which will take
care of flow in which stored procs will get executed which inturn is
set by UNIX CRON
- 8
- AWT -> Swing, blocked dispatch thread
Ok, so I'm finally modernizing my code and switching everything from AWT
to Swing. I keep getting errors like the one below. What might I be
doing that would be blocking the event dispatch thread? Or maybe I'm
doing something else? Is there some common noob mistake that causes
this?
Thanks.
Event
java.awt.event.MouseEvent[MOUSE_PRESSED,(17,93),mods=16,clickCount=1] on
frame0 not handled after 30 seconds. Are you blocking the event
dispatch thread?
java.lang.Exception: Stack trace
at java.lang.Thread.dumpStack(Thread.java:1004)
at
com.apple.mrj.internal.awt.basepeers.EventHandlingComponentPeer.pumaWorka
roundPostEvent(EventHandlingComponentPeer.java:931)
at
com.apple.mrj.internal.awt.basepeers.EventHandlingComponentPeer.mousePres
sed(EventHandlingComponentPeer.java:680)
at
com.apple.mrj.internal.awt.frames.SimpleFramePeer.handleClick(SimpleFrame
Peer.java:1729)
at
com.apple.mrj.internal.awt.framehosts.CarbonWindowFrameHost.handleClick(C
arbonWindowFrameHost.java:1113)
at
com.apple.mrj.internal.awt.framehosts.CarbonWindowFrameHost.handleClickCo
ntentRgn(CarbonWindowFrameHost.java:1073)
at
com.apple.buckyball.app.WindowEventHandler.handleEvent(WindowEventHandler
.java:101)
at
com.apple.buckyball.app.EventHandler$Adapter.EventHandler(EventHandler.ja
va:248)
--
Please take off your shoes before arriving at my in-box.
I will not, no matter how "good" the deal, patronise any business which sends
unsolicited commercial e-mail or that advertises in discussion newsgroups.
- 8
- SOLVED: How to read MANIFEST.MF from pluginHi,
here is a way to access "your" manifest, i.e. the manifest of the jar
your class is loaded from. It only works for SunPlugin. In other cases
you may have another ClassLoader not supporting a public
findResource-method. The always public getResource unfortunatly
prefers to return resources returned by the parent's getResource if it
is not null. That's why you would get the manifest of rt.jar. Is there
any good reason to revert the principle 'local hides global' in case
of getting resources? Anyway, here it is:
import java.util.jar.Manifest;
import sun.applet.AppletClassLoader;
...
AppletClassLoader cl = (AppletClassLoader)
getClass().getClassLoader();
URL manifest_url = cl.findResource("META-INF/MANIFEST.MF");
Manifest manifest = new Manifest(manifest_url.openStream());
Yours,
Albrecht
- 10
- any easy way to write out a XML DOM object to file?Hello!
I am using Document and DOM to hold a XML file, and make some changes
to the Document. After that, I just wonder is there any easy way to
write the modified XML file back to disk? (loop all the nodes and
print them out is one way of course, any other better way?)
The piece of node is:
String filename="mytest.xml";
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
// Create the builder and parse the file
Document doc = factory.newDocumentBuilder().parse(new
File(filename));
// changes the doc, add, edit nodes, etc.
Now, I want to get the updated xml file from "doc", what to do?
Anything like doc.writeAsXMLFile("newFile.xml")?
Thanks and happy holiday. :-)
- 15
- Where to find web game programmer?Where is the best place for me to find a java programmer to write a
few games for a website? These would be mostly casino style games
that would interact with our existing database to take advantage of
the points/tokens our users already have obtained.
Please email me if interested, or, send me to the best place to find
such a person or group of people..
c b r o m l e y @ g m a i l . c o m
|
| Author |
Message |
ilyabo

|
Posted: 2007-5-31 22:34:00 |
Top |
java-programmer, buggy regexp
Hello all!
The following line hangs in Java:
Pattern.matches("((<BR>)|([^<>]+))*", "aaaaaaaaaaaaaaaaaaaaaaaa
<BR><Bx>")
What's wrong with the regular expression?
Thanks in advance
Ilya
|
| |
|
| |
 |
Robert Klemme

|
Posted: 2007-5-31 22:41:00 |
Top |
java-programmer >> buggy regexp
On 31.05.2007 16:33, email***@***.com wrote:
> Hello all!
>
> The following line hangs in Java:
>
> Pattern.matches("((<BR>)|([^<>]+))*", "aaaaaaaaaaaaaaaaaaaaaaaa
> <BR><Bx>")
>
> What's wrong with the regular expression?
You nest "+" and "*" which can lead to bad backtracking (which you seem
to experience). If you wait long enough you'll see the result.
If you just want to test for the presence of "<BR>" you can do this:
boolean match = str.indexOf("<BR>") != -1;
Or as regexp
Pattern p = Pattern.compile("<BR>");
boolean match = p.matcher(s).find();
Kind regards
robert
|
| |
|
| |
 |
ilyabo

|
Posted: 2007-6-1 1:43:00 |
Top |
java-programmer >> buggy regexp
Hello Robert,
> You nest "+" and "*" which can lead to bad backtracking (which you seem
> to experience). If you wait long enough you'll see the result.
You are right it doesn't hang, it just works very slowly - it takes
about two minutes to finish this match. And the more "a"-letters
before the <BR>s are in the input string, the longer it takes.
> If you just want to test for the presence of "<BR>" you can do this:
>
> boolean match = str.indexOf("<BR>") != -1;
>
> Or as regexp
>
> Pattern p = Pattern.compile("<BR>");
> boolean match = p.matcher(s).find();
I want actually to check the validness of an HTML string where only
the cerain tags are allowed. The original expression was:
(?ui)(([^<>]+)|(<\\/?(p|br|em|strong|strike|i|b|ul|ol|li)\\s*\\/?\
\s*>))*
but I reduced it to make the problem clearer.
Interestingly, the same regular expression match works instantly in
Perl:
$_ = "aaaaaaaaaaaaaaaaaaaaaaaa <BR><Bx>";
print "yes" if (m/^((<BR>)|([^<>]+))*$/);
And if I move <Bx> to the beginning of the string or change it to <BR>
then it works instantly also in Java.
Ilya
|
| |
|
| |
 |
ilyabo

|
Posted: 2007-6-1 2:15:00 |
Top |
java-programmer >> buggy regexp
And thanks, Robert, removing "+" helps alot, at least, for this input
string. But if I try a longer one, it still takes ages to match it.
Regards
Ilya
> > Pattern.matches("((<BR>)|([^<>]+))*", "aaaaaaaaaaaaaaaaaaaaaaaa
> > <BR><Bx>")
>
> > What's wrong with the regular expression?
>
> You nest "+" and "*" which can lead to bad backtracking (which you seem
> to experience). If you wait long enough you'll see the result.
>
|
| |
|
| |
 |
Oliver Wong

|
Posted: 2007-6-1 5:25:00 |
Top |
java-programmer >> buggy regexp
<email***@***.com> wrote in message
news:email***@***.com...
[snip regexp stuff]
>
> I want actually to check the validness of an HTML string where only
> the cerain tags are allowed. The original expression was:
> (?ui)(([^<>]+)|(<\\/?(p|br|em|strong|strike|i|b|ul|ol|li)\\s*\\/?\
> \s*>))*
> but I reduced it to make the problem clearer.
Note that it's impossible to check the validity of HTML using
"traditional" regular expressions, as HTML is not a regular language. Perl
regular expressions are actually more powerful than traditional regular
expressions; I'm not sure if Perl regular expressions are powerful enough
to recognize context-free languages or not. HTML is a context-free
language.
I think you'll have better luck using a pre-written HTML parser, or at
worst, writing your own full blown parser for checking your strings for
validity.
- Oliver
|
| |
|
| |
 |
ilyabo

|
Posted: 2007-6-1 15:41:00 |
Top |
java-programmer >> buggy regexp
Hi Oliver,
in fact I don't want to really check the validity of HTML, but just
ensure that only allowed tags are used. So the logic of the regular
expression should be very simple: if there is something between <>
then it must be one of the predefined tags.
This is surely not impossible: the regular expression which I cited
works in Java too - it just takes too much time in Java, that's the
problem.
Regards
Ilya
> Note that it's impossible to check the validity of HTML using
> "traditional" regular expressions, as HTML is not a regular language. Perl
> regular expressions are actually more powerful than traditional regular
> expressions; I'm not sure if Perl regular expressions are powerful enough
> to recognize context-free languages or not. HTML is a context-free
> language.
|
| |
|
| |
 |
Ingo Menger

|
Posted: 2007-6-1 16:39:00 |
Top |
java-programmer >> buggy regexp
On 31 Mai, 20:15, email***@***.com wrote:
> And thanks, Robert, removing "+" helps alot, at least, for this input
> string. But if I try a longer one, it still takes ages to match it.
This is because your RE is a bit silly.
You try to match the whole document, which is going to take long.
I'd do it like this:
p = Pattern.compile("<(\\w+)\\b[^>]*>"); // matches also <A
href="foo">
m = p.matcher(s);
correct = true;
while (correct && m.find()) {
correct = allowed(m.group(1));
}
|
| |
|
| |
 |
ilyabo

|
Posted: 2007-6-1 19:06:00 |
Top |
java-programmer >> buggy regexp
Thanks a lot, that's a good hint!
Regards
Ilya
On Jun 1, 10:39 am, Ingo Menger <email***@***.com> wrote:
> p = Pattern.compile("<(\\w+)\\b[^>]*>"); // matches also <A
> href="foo">
> m = p.matcher(s);
> correct = true;
> while (correct && m.find()) {
> correct = allowed(m.group(1));
> }
|
| |
|
| |
 |
Robert Klemme

|
Posted: 2007-6-1 19:35:00 |
Top |
java-programmer >> buggy regexp
On 01.06.2007 09:41, email***@***.com wrote:
> in fact I don't want to really check the validity of HTML, but just
> ensure that only allowed tags are used. So the logic of the regular
> expression should be very simple: if there is something between <>
> then it must be one of the predefined tags.
Actually that logic does not work because it won't handle <> in comments
and attributes properly. Using a full blown HTML parser (of which there
are plenty around) is certainly the safer choice.
> This is surely not impossible: the regular expression which I cited
> works in Java too - it just takes too much time in Java, that's the
> problem.
Often, changing approaches is more efficient. Why don't you do
// this regexp should be improved!
private static final Pattern TAG = Pattern.compile("<(\\w+)[^>]*>");
private static final Set valid = createValidTags();
static boolean isValid(CharSequence s) {
Matcher m = TAG.matcher(s);
while ( m.find() ) {
if ( !valid.contains(m.group(1).lowerCase()) ) {
return false;
}
}
return true;
}
Kind regards
robert
|
| |
|
| |
 |
ilyabo

|
Posted: 2007-6-1 20:22:00 |
Top |
java-programmer >> buggy regexp
Hello Robert,
> Actually that logic does not work because it won't handle <> in comments
> and attributes properly.
It doesn't have to.
> Often, changing approaches is more efficient. Why don't you do
[code omitted]
Yes, that's just the same as what Ingo suggested and it works well
also on very long input strings.
Thank you!
Best regards
Ilya
|
| |
|
| |
 |
| |
 |
Index ‹ java-programmer |
- Next
- 1
- Great SWT ProgramIn article <email***@***.com>,
<email***@***.com> wrote:
> On Sep 17, 5:43 am, email***@***.com <email***@***.com> wrote:
> > Just out of curiosity, have you ever used vim or gvim? what do
> > you normally use for editing text -- or does it depend on the use
> > of the text (e.g., an IDE if it's source code, a word processor
> > if it's a formatted document)?
>
> It depends on the circumstances, but it's always something sane.
So, do you mean to imply by this that you've never used vim or gvim?
Just asking.
> That
> means a) its interface was designed and developed sometime after the
> invention of the mouse;
Presumably true of gvim, since it allows a lot of operations to be
done using a mouse.
> b) said interface is NOT just bolted on over
> something archaic (no doubt with half the wingnuts loose and the other
> half missing);
It seems to me that the actual operations involved in editing
text files haven't changed that much -- find, insert, delete,
etc. -- so a program that was able to perform them with a primitive
interface should be equally capable of performing them with a more
sophisticated interface, and the fact that the underlying code has
been in use for many years might improve the odds that any bugs
have been found and fixed.
I repeat -- have you ever used any of these tools you're slamming?
> c) the authors have indeed heard of and applied CUA so
> someone who knows how to use normal software can immediately be
> productive using theirs, and only learn the different/additional
> features vs. other similar applications; and
So apparently you've changed your mind about "CUA" being a
cryptic term?
( http://groups.google.com/group/comp.emacs/msg/7bbbe22873f7f9ac )
> d) there's no retro/
> nostalgic stuff going on -- it's not designed by people who pine for
> the days when 640K really was enough for anybody. :)
Well, when Mr. Gates (?) was saying that, I was probably still
mostly ignorant of the PC world; I started out on mainframes,
and it took a long time for me to regard PCs as anything but
toys. (Then again, I think one could make a case for the idea
that the way most people use them these days *is* as toys.
But I digress.)
I do pine for the days when more people believed in the Unix idea
of tools being simple programs that did simple jobs well [*] and
could be combined under the user's control to do more complex jobs.
But -- "yeah well".
[*] Rather than attempting to do everything the programmer and/or
the marketing department can think of, with mixed success.
--
B. L. Massingill
ObDisclaimer: I don't speak for my employers; they return the favor.
- 2
- method always visible by other classThen I have a class called MyDBConn.java, inside this class there's a
method called GetResultFromPazienti():
MyDBConn.java:
==================================
package cc;
import java.sql.*;
public class MyDBConn {
private Connection myConnection;
private java.sql.Statement stmt;
// ...
public ResultSet getResultFromPazienti2(String query) {
ResultSet rs=null;
try{
rs=stmt.executeQuery(query);
}
catch(Exception e){
alerts.showErr(e.getMessage());
}
return rs;
}
// ...
==================================
After this, I have a class called Paziente.java, from this class I
would call method: getResultFromPazienti2(), class is something like
this:
File: Paziente.java
==================================
package cc;
import java.sql.*;
public class Paziente extends javax.swing.JFrame {
private MyDBConn mdbc;
private java.sql.Statement stmt;
// ...
// ...
private void formWindowOpened(java.awt.event.WindowEvent evt)
{
ResultSet rs=mdbc.getResultFromPazienti2("select ... from ...
where ...");
try {
rs.next();
// ...
txtNome.setText(rs.getString("NOME"));
// ...
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
==================================
At first moment seem that are not problems, infact there's no problem
in compile time, but when I execute project and method
formWindowOpened() is started an "Exception in thread "AWT-
EventQueue-0" java.lang.NullPointerException", where are the
problems???
Thank you to all....
- 3
- A good text editor for JAVA?In article <email***@***.com>, email***@***.com wrote:
>In article <email***@***.com>,
>Roedy Green <email***@***.com> wrote:
>>On Thu, 1 Dec 2005 14:23:34 -0700, "Monique Y. Mudama"
>><email***@***.com> wrote, quoted or indirectly quoted someone who
>>said :
>>
>>>s/days/years
>>
>>I found EMACs drove me nearly nuts. My editing CUA reflexes were well
>>below conscious control. It was like being given a keyboard with all
>>the keys randomly rearranged. Even the mouse worked a different way.
>>Even its legendary programmability could not make up for that.
>>
>>Even if you do adjust, if you go back to another CUA editor I found
>>the reflexes don't recover. I am "uniligual" as a typist. I can't be
>>proficient on two editors for the same reason I can't rapidly type
>>both QWERTY and DSK. See http://mindprod.com/jgloss/dsk.html
>
>Sing it. I also have had trouble trying to become multilingual with
>regard to editors, though I'm a vim bigot who gets annoyed when she
>has to use .... maybe "CUA editors" is the right term. As you say,
>knowing which keys to use for common editing tasks becomes a reflex
>action, and trying to use something that uses different keys for
>the same tasks is not only irritating but also can seem to mess up
>the reflexes, which is a whole other level of irritation.
>
>However, I had an interesting exchange in comp.editors recently with
>someone who says that he uses lots of tools on lots of platforms and
>claims that *if you practice enough* you can develop the ability
>to switch back and forth seamlessly. But he claims that it takes
>a *lot* of practice. The thread is in comp.editors, subject line
>"GENERAL: Formatting text in Linux?", participants me and a Brian
>Masinick, if anyone wants to find it in the archives. (Sorry about
>not providing a URL or message IDs, but I'm not sure how to do that
>unambiguously.)
>
[snip]
It's all about how you want to use your time. I could use my time learning
lots of different tools and editors or I could find a handful of tools and use
my time to look at new apis/languages or work on open source projects, etc.
Eric
- 4
- Fastest way to pass messages?Our app needs to have a central computer send a message to several other
computers, and then gather a response from each. This has got to happen
hundreds of times per second (not necessarily synchronously). Each
message is just an array of bytes, usually less than 100 bytes on the
way out and less than 8K on the way back.
What's the fastest, most efficient way to do it? RMI? Jini? JMS? REST?
Raw sockets?
I expect that some would say raw sockets, but my guess is that one or
more of the others might be nearly as fast and have other advantages as
well. Any advice is appreciated.
- 5
- [OT]Martin Gregorie wrote:
> email***@***.com wrote:
>>
>> In the mainframe days, I'd have said most people's image of a
>> programmer was influenced by those IBM employees in suits -- nerdy,
>> but conservative. When PCs took off, that image changed some,
>> into the current "nerdy, no social skills, poor hygiene, etc."
>> I can believe that young women found the mainframe-programmer
>> image less off-putting than the mad-hacker-PC-programmer image.
>>
> IIRC the "nerdy...." image predates the PC by getting on for 10 years
> and was probably first defined by Richard Stallman and his fellow
> hackers at college.
1966 at the /latest/ at Brown -- but that's in the University world.
In the business world, in the late 60s, programmers still had offices
(perhaps two to an office), and were indistinguishable from other
management-class workers, apart from, perhaps, a greater tendency to
work in shirtsleeves, with the jacket hung up or draped over a chair.
And some of them were women -- typically 30-40, married, with children.
--
John W. Kennedy
"Only an idiot fights a war on two fronts. Only the heir to the throne
of the kingdom of idiots would fight a war on twelve fronts"
-- J. Michael Straczynski. "Babylon 5", "Ceremonies of Light and Dark"
- 6
- How know if a method is part of an interface?I have a class named MyClass implementing an interface named MyInterface.
I have also an instance of java.lang.reflect.Method describing a method
of MyClass (is the parameter of the invoke method in an
java.lang.reflect.InvocationHandler).
I need to know if Method is part of MyInterface or not.
Is there a way other than checking the method name and parameters type?
Thanks,
Andrea
- 7
- Text Field InputI have a JFrame where I hold visible only and employee ID number. I
can input the employee number, retrieve the employee information from a
database, and then display the information on the screen.
I then want to enter hours on the same form. I can bring the
appropriate text field visible, but can't seem to get the code to halt
execution in order to input hours and then compute payroll.
How do I bring a new field visible and then halt code for the input,
several times, on the same form, bringing only the appropriate fields
visible as necessary?
Hope that made sense.
- 8
- Sorting a row of letters, using a blank space, with some added rulesI will have a line consisting of the letters A-E in a random order and
a blank space at the end. So that gives me positions 1-6. Now I want
them sorted to give me the order "ABCDE ", and the sorting would be to
put a letter into the empty space, and sort them that way. That would
be easy enough to code if it wasn't for some necessary rules.
It will not be possible to swap from any position to any position,
which possible moves there are, has to be hardcoded in, like for
example a small array, but since there are maximum 15 possible moves,
that should not be a problem.
For example I could have this starting line-up "BCEAD ". And you could
only move between positions 1 and 2, 1 and 4, 1 and 6, 2 and 3, 2 and
5, 3 and 4, 3 and 6, 4 and 5, 5 and 6.
So since my goal is to minimize the number of moves, in this case the
algorithm would produce the following moves, which is the shortest
solution.
"BCEAD "
"BC ADE"
"B CADE"
" BCADE"
"ABC DE"
"ABCD E"
"ABCDE "
I hope I've made my point clear enough. What I can't figure out is the
algorithm for this, which I hope some of you can help me with. I don't
expect finished Java code, properly explained pseudo code will do :)
Michael
- 9
- Jtable header clickable?HI!
I've been trying to find information on how to make the header of a
JTable clickable. I.e I want my users to be able to click the header
and the program do something smart (possibly sorting data, or
whatever)
I only seem to find references to dead-links when I search on deja,
and amazingly google did not seem to help much. Can anyone point me
the general direction on how to do this?
regards
Daniel
- 10
- making indented XMLI could swear that this used to work for me, but when I run the
following code I get:
<?xml version="1.0" encoding="UTF-8"?>
<a><b><c/></b></a>
which is not the:
<a>
<b>
<c/>
</b>
</a>
that I want and was expecting. I'm running JDK 1.4.2_03 on W2K with
the latest Xalan and Xerces.
I've tried running it like the following:
java -classpath .;xercesImpl.jar;xalan.jar;xml-apis.jar PrintTest
java -Djava.endorsed.dirs=. -classpath
.;xercesImpl.jar;xalan.jar;xml-apis.jar PrintTest
java -Xbootclasspath/p:xercesImpl.jar;xalan.jar;xml-apis.jar
-classpath .;xercesImpl.jar;xalan.jar;xml-apis.jar PrintTest
I'm at a loss here. Can somebody throw me a bone?
Cheers.
Steve Maring
steve at maring dot org
import java.io.StringReader;
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.OutputKeys;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
public class PrintTest
{
public static void main( String[] args )
{
try
{
String xml = "<a><b><c></c></b></a>";
PrintWriter printWriter = new PrintWriter( System.out, true
);
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(
new InputSource( new StringReader( xml ) ) );
TransformerFactory transFactory =
TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer();
transformer.setOutputProperty( OutputKeys.METHOD, "xml" );
transformer.setOutputProperty( OutputKeys.INDENT, "true" );
transformer.setOutputProperty(
OutputKeys.OMIT_XML_DECLARATION, "true" );
transformer.setOutputProperty(
"{http://xml.apache.org/xslt}indent-amount", "4" );
transformer.transform(
new DOMSource( doc ), new StreamResult( printWriter ) );
}
catch ( Exception e )
{
e.printStackTrace();
}
}
}
- 11
- Sound Recording - Runs out of memoryI think you may find examples from this website very helpful:
http://www.jsresources.org
Regards,
JM
"Christiaan" <email***@***.com> wrote in message
news:email***@***.com...
> Hi,
>
> Here is a simple sound recording program to record sounds via your
> mic.The problem is that you read the sound bytes into a
> ByteArrayOutputStream and if it becomes to big you get -
> java.lang.OutOfMemoryError.
>
> What can I do to overcome this , I have tried to write the incomming
> bytes to file 1st and then from the file into the audioInputStream ,
> but I couldn't get that to work - here is my code (I used jdk1.3 and
> jdk1.4):
>
>
>
> If you copy the code into a IDE the place where the exception are
> thrown are on line 236.
>
> /*
> Christiaan Pansegrouw
> 22/05/2003
> Simple Sound Recording app
> Contains a start & stop buttom & saves to a wave file -
> "userHomeDir"\SimpleMicRecording\SimpleSound.wav
>
> */
>
> import javax.swing.*;
> import java.awt.*;
> import java.awt.event.*;
> import javax.sound.sampled.*;
> import java.io.*;
>
>
>
>
> public class LaunchSimpleSound
> {
> public static void main(String [] args)
> {
> SimpleSound ss = new SimpleSound();
> }
> }
>
>
> class SimpleSound extends JFrame implements ActionListener
> {
>
> private String userHomeDir = System.getProperty("user.home");
> private String fileSeperator =
> System.getProperty("file.separator");
>
> private JPanel mainPanel;
> private JButton cmdStartRecord;
> private JButton cmdStopRecord;
> AudioInputStream audioInputStream;
> double duration;
> Capture capture = new Capture();
>
> public SimpleSound()
> {
> makeGUI();
>
> }
>
>
> public void makeGUI()
> {
> mainPanel = new JPanel();
> cmdStartRecord = new JButton("Start");
> cmdStopRecord = new JButton("Stop");
> cmdStopRecord.setEnabled(false);
>
>
> cmdStartRecord.addActionListener(this);
> cmdStopRecord.addActionListener(this);
>
>
> mainPanel.add(cmdStartRecord);
> mainPanel.add(cmdStopRecord);
>
> Container c = this.getContentPane();
>
> c.add(mainPanel , BorderLayout.CENTER);
> this.pack();
> this.setDefaultCloseOperation(EXIT_ON_CLOSE);
> this.setVisible(true);
>
> }
>
>
> public void actionPerformed(ActionEvent ae)
> {
> Object source = ae.getSource();
>
> if (source == cmdStartRecord)
> {
> cmdStartRecord.setEnabled(false);
> cmdStopRecord.setEnabled(true);
> capture.start();
>
> }
> else
> {
> cmdStartRecord.setEnabled(true);
> cmdStopRecord.setEnabled(false);
> capture.stop();
> // SaveToFile();
> }
> }
>
>
> public void SaveToFile()
> {
> if (audioInputStream == null)
> {
> System.out.println("Nothing to save ->someting bad happend !!!");
> System.out.println("cashing & burning . .. .");
> System.exit(0);
> }
> else
> {
>
> }
>
> try
> {
> audioInputStream.reset();
> }
> catch(Exception e)
> {
> System.out.println("Unable to reset audioStream in save method");
> System.out.println("Exitting . .. .");
> System.exit(0);
> }
> File x = new File(userHomeDir + fileSeperator +
> "SimpleMicRecording" + fileSeperator + "SimpleSound.wav");
> if (!(x.exists())){
> File dirs = x.getParentFile();
> dirs.mkdir();
> }
> File file = new File(userHomeDir + fileSeperator +
> "SimpleMicRecording" + fileSeperator + "SimpleSound.wav");
> try
> {
> if (AudioSystem.write(audioInputStream , AudioFileFormat.Type.WAVE
> , file) == -1)
> {
> System.out.println("Error");
> }
> }
> catch(Exception e)
> {
> System.out.println("Oh-no!!!");
> }
> }
>
> class Capture implements Runnable
> {
> private AudioFormat.Encoding encoding;
> private float rate;
> private int sampleSize;
> private int channels;
> private int frameSize;
> private boolean bigEndian;
>
>
>
> TargetDataLine line; //define a line - a line from witch audio can
> be read
> Thread thread;
>
> public void start()
> {
> thread = new Thread(this);
> thread.setName("Capture Audio");
> thread.start();
> }
>
>
> public void stop()
> {
> thread = null;
> }
>
> public void run()
> {
> duration = 0;
> audioInputStream = null;
>
> setupFormat();
>
> //define the required attributes for the line &
> //make sure a compatible line is supported
> AudioFormat format = new
> AudioFormat(AudioFormat.Encoding.PCM_SIGNED ,44100, 16,2 , 4 ,44100 ,
> true);
>
> //does not want to work !!!!????
> //AudioFormat format = new AudioFormat(encoding , rate , sampleSize
> , channels , frameSize , rate , bigEndian);
>
> DataLine.Info info = new DataLine.Info(TargetDataLine.class ,
> format);
>
> if (!AudioSystem.isLineSupported(info))
> {
> System.out.println("Line matching " + info +" not supported");
> System.out.println("Exitting the application . . .");
> System.exit(0);
> }
>
> //get & open target data line for capture
>
> try
> {
> line = (TargetDataLine) AudioSystem.getLine(info);
> line.open(format , line.getBufferSize());
> }
> catch(LineUnavailableException ex)
> {
> System.out.println("Unable to open the line");
> System.out.println("Exitting application . . .");
> System.exit(0);
> }
> catch(SecurityException ex)
> {
> System.out.println("A security exception occured");
> System.out.println("Exitting application . . .");
> System.exit(0);
> }
> catch(Exception ex)
> {
> System.out.println("Some exception occured");
> System.out.println("Exitting application . . .");
> System.exit(0);
> }
>
> ByteArrayOutputStream out = new ByteArrayOutputStream();
> int frameSizeInBytes = format.getFrameSize();
> int bufferLengthInFrames = line.getBufferSize() / 8;
> int bufferLengthInBytes = bufferLengthInFrames * frameSizeInBytes;
> byte [] data = new byte[bufferLengthInBytes];
> int numBytesRead;
>
> line.start();
>
> //while the thread is running , write whatever is comming
> //through the line(TargetDataLine) , to the ByteArrayOutputStream
> while (thread != null)
> {
> //Reads audio data from the data line's input buffer
> //if eoi then break out of the while-loop
>
> //The number of bytes to be read must represent an integral
> //number of sample frames, such that:
> // [ bytes read ] % [frame size in bytes ] == 0
> if ((numBytesRead = line.read(data , 0 , bufferLengthInBytes)) ==
> -1)
> {
> break;
> }
> //here is the problem
> out.write(data ,0 , numBytesRead);
> }
>
>
> //we reached the end of the stream . stop & close the line
> line.stop();
> line.close();
> line = null;
>
> //stop & close the output stream
> try
> {
> //Flushes this output stream and forces any buffered
> //output bytes to be written out. The general contract
> //of flush is that calling it is an indication that, if
> //any bytes previously written have been buffered by the
> //implementation of the output stream, such bytes should
> //immediately be written to their intended destination.
> out.flush();
> out.close();
> }
> catch(IOException ex)
> {
> System.out.println("IO Error occurered (flussing the
> BufferArrayOutputStream)");
> System.out.println(" . . . but carring on");
> }
>
> //load bytes in to audio input stream for saving
>
> byte audioBytes[] = out.toByteArray();
> ByteArrayInputStream bais = new ByteArrayInputStream(audioBytes);
> audioInputStream = new AudioInputStream(bais , format ,
> audioBytes.length / frameSizeInBytes);
>
> long milliseconds =
> (long)((audioInputStream.getFrameLength() * 1000) /
> format.getFrameRate());
> duration = milliseconds / 1000.0;
>
>
> try
> {
> audioInputStream.reset();
> }
> catch(Exception e)
> {
> System.out.println("Error resetting audioInputStream");
> System.out.println("Exitting application . . .. ");
> System.exit(0);
> }
>
> if (audioInputStream == null)
> {
> System.out.println("?????????");
> }
> SaveToFile();
>
> }
>
> private void setupFormat()
> {
> AudioFormat.Encoding encoding = AudioFormat.Encoding.PCM_SIGNED;
> rate = (float)44100;
> sampleSize = 16;
> channels = 2;
> frameSize = (sampleSize/8)*channels;
> bigEndian = true;
> }
> }
> }
- 12
- 13
- Draw controls over custom paintsHi!
I'm trying to drawing under swing controls; actually i draw over all
japplet canvas with repaint method.
public void update (Graphics g)
{
g.fillRect(0,0,300,300);
}
If i declare a simple JTextField with this code:
JTextField field1;
[...]
panel = new JPanel();
field1 = new JTextField( 10 );
panel.add( field1 );
getContentPane().add( "Center", panel );
The textfield is created under the filled rectangle (so i can't see
it!); there's a way to draw the controls on top of the paint methods??
Thanks in advance!
D.Maiorana.
- 14
- MyEclipse - XDoclet problem Hi
I'm trying to create a simple EJB by the help of myeclipse
1. i've created EJB class
2. selected myeclipse - XDoclet standart EJB
and after running myeclipse - XDoclet only 'home' interface has been
generated
could anybody explain why 'object' interface hasn't been generated
I use
Eclipce Version: 3.0.0 Build id: 200310101454
MyEclipse Version: 3.6.4
code:
----------------------------------------------------------------------------
package hello;import java.rmi.RemoteException;import
javax.ejb.CreateException;import javax.ejb.EJBException;import
javax.ejb.SessionBean;import javax.ejb.SessionContext;/** * XDoclet-based
stateless session bean. The class must be declared * public, according to
the EJB specification. * * To generate code: * * * a.. Add Standard EJB
module to XDoclet project properties * b.. Customize XDoclet configuration
* c.. Run XDoclet * * * Please see the included XDoclet Overview * and
the XDoclet Reference in the help system for details * * @ejb.bean name =
"HelloWorld" * type = "Stateless" * display-name =
"HelloWorld" * description = "HelloWorld EJB" *
view-type = "remote" * jndi-name = "ejb/HelloWorldHome" */public
class HelloWorld implements SessionBean { /** The SessionContext */ private
SessionContext context; /** * An ejbCreate method as required by the EJB
specification. * * The container calls the instance's ejbCreate method
whose * signature matches the signature of the create method invoked *
by the client. The input parameters sent from the client are passed to *
the ejbCreate method. Each session bean class must have at * least one
ejbCreate method. The number and signatures * of a session bean's create
methods are specific to each * session bean class. * * @throws
CreateException Thrown if the instance could not perform * the function
requested by the container because of an system-level error. * *
@ejb.create-method */ public void ejbCreate() throws CreateException { }
/** * The ejbActivate() method as required by the EJB specification. * *
The activate method is called when the instance is activated from its *
passive" state. The instance should acquire any resource that it has *
released earlier in the ejbPassivate() method. * * This method is called
with no transaction context. * * @throws EJBException Thrown if the
instance could not perform * the function requested by the container
because of an system-level error. */ public void ejbActivate() throws
EJBException { } /** * The ejbPassivate() method as required by the EJB
specification. * * The activate method is called when the instance is
activated from * its "passive" state. The instance should acquire any
resource that * it has released earlier in the ejbActivate() method. *
* This method is called with no transaction context. * * @throws
EJBException Thrown if the instance could not perform * the function
requested by the container because of an system-level error. */ public void
ejbPassivate() throws EJBException { } /** * The ejbRemove() method as
required by the EJB specification. * * A container invokes this method
before it ends the life of the * session object. This happens as a result
of a client's invoking * a remove operation, or when a container decides
to terminate the * session object after a timeout. * * This method
is called with no transaction context. * * @throws EJBException Thrown
if the instance could not perform * the function requested by the
container because of an system-level error. */ public void ejbRemove()
throws EJBException { } /** * Set the associated session context. The
container calls this method * after the instance creation. * * The
enterprise bean instance should store the reference to the context *
object in an instance variable. * * This method is called with no
transaction context. * * @throws EJBException Thrown if the instance
could not perform * the function requested by the container because of an
system-level error. */ public void setSessionContext(SessionContext
newContext) throws EJBException { context = newContext; } /** * An
example business method * * @ejb.interface-method view-type = "remote" *
* @throws EJBException Thrown if the instance could not perform * the
function requested by the container because of an system-level error. */
public void m1() throws EJBException { // rename and start putting your
business logic here } /** * An example business method * *
@ejb.interface-method view-type = "remote" * * @throws EJBException
Thrown if the instance could not perform * the function requested by the
container because of an system-level error. */ public void m2() throws
EJBException { // rename and start putting your business logic here }}
----------------------------------------------------------------------------
Thanks a lot !
- 15
- Applet no longer works in IE - problem fixedHi Andrew,
It seems that the source of my problem is the fact that I upgraded
from Eclipse 2.1.1. to 3.2.0. After testing with the latest working
version of my applet I found out that the compiler compliance setting
has to be 1.3 for the applet to work in IE. Default setting is 1.4.
:-|
thanks, Mark.
On Tue, 15 Nov 2005 22:35:10 +0100, Mark <email***@***.com> wrote:
>Sorry, yes I forgot. I don't like frames but how else can you prevent
>having to reload the applet every time you load another page?
>I have removed the redirection.
>This is the HTML:
>
><!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
><HTML xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
><HEAD>
><TITLE>Smorf applet 360x360</TITLE>
><META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
><META http-equiv="Content-type" content="text/html;
>charset=iso-8859-1" />
><meta http-equiv="imagetoolbar" content="no" />
><meta content="TRUE" name="MSSmartTagsPreventParsing" />
><link rel="stylesheet" type="text/css" href="styles.css" />
><script language="javascript">
> if(self.location==top.location)self.location="frames360.html";
></script>
></HEAD>
><BODY>
> <APPLET
> code="SmorfApplet.class"
> height=360 width=360
> name="smorf"
> archive="smorfob.jar, jazz3d3.jar, jazz3d3_primitives.jar"
> </APPLET>
></BODY>
></HTML>
>
>anyway I found out creating the package isn't the problem. I put all
>the classes in a single package and jar file, the problem is still
>there.
>
>Mark.
>
>On Tue, 15 Nov 2005 21:20:49 GMT, Andrew Thompson
><email***@***.com> wrote:
>
>>Mark wrote:
>>
>>> The applet I'm testing is here:
>>> http://www.smorf.nl/smorfde/frames360.html
>>
>>That's a frames based page, and when I try to get
>>the applet itself*, I get directed back to the frames
>>page.
>>
>>* I need to see the HTML source.
>>
>>Fix that and I'll help.
|
|
|