Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Keyboard Kid
Sep 12, 2006

If you stay here too long, you'll end up frying your brain. Yes, you will. No, you will...not. Yesno, you will won't.

Sereri posted:

code:
        for( String word : al1 )
        {
            if( !al2.contains(word.toUpperCase))
            al2.add(word.toUpperCase);
        }
Like that ?

I suppose that works for this case (I used toLowerCase() instead), but I'd like it to add the word in it's original (first instance) form. If I had:

al1: "Cat" "is" "the" "cat" "in" "Breakfast" "at" Tiffany's"

I'd like to have "Cat", not "cat" or "CAT" in al2 such that:

al2: "Cat" "is" "the" "in" "Breakfast" "at" Tiffany's"

Since I'd actually be reading the Strings from a file, I'm experimenting with using two Scanner objects instead of just one... but so far I haven't figured it out.

Adbot
ADBOT LOVES YOU

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
You could use a HashSet on the side (or, possibly better, a TreeSet with a case-insensitive comparator).

Malloc Voidstar
May 7, 2007

Fuck the cowboys. Unf. Fuck em hard.
Here's how to do it the wrong way:

code:
	public static void main(final String... args) {
		String[] words = { "Cat", "is", "the", "cat", "in", "Breakfast", "at", "Tiffany's" };
		ArrayList<String> wordlist = new ArrayList<String>(Arrays.asList(words));
		ArrayList<String> uniquelist = new ArrayList<String>();
		for (String oneword : wordlist)
			if (!ewCompare(uniquelist, oneword))
				uniquelist.add(oneword);
		for (String oneword : uniquelist)
			System.out.print(oneword + " ");
	}

	public static boolean ewCompare(ArrayList<String> arl, String item) {
		for (String thing : arl)
			if (thing.equalsIgnoreCase(item))
				return true;
		return false;
	}
Prints Cat is the in Breakfast at Tiffany's and you shouldn't do it like this.

baquerd
Jul 2, 2007

by FactsAreUseless

I am in posted:

Maybe it's just your JPA Provider. Which one do you use?

OpenJPA 2.0

Luminous
May 19, 2004

Girls
Games
Gains

magicalblender posted:

Is it possible to make a decorator class that doesn't call super() on its superclass?

Example code
I have a class Widget, which I can't modify the source code to. I want to know when methods frob() and troz() get called, so I make a decorator NoisyWidget, which alerts me when they get called. I instantiate a NoisyWidget and pass it to a function that takes Widgets.

I expect the output to be this:
code:
Doing lots of work...
function frob was called!
function troz was called!
but I get this:
code:
Doing lots of work...
Doing lots of work...
function frob was called!
function troz was called!
It looks like Java is inserting an implicit super call in the NoisyWidget constructor. This is causing it to do 100% more work than it needs to. Is there any way to tell Java, "no thanks, I really don't want to call super(), implicitly or otherwise"?

I suspect this post might be an XY problem, so I'll also ask a higher-level question. I want to monitor Widget's methods - how else can I do this?

While you've received other responses, I am going to throw out these two questions: 1) do you need to use a decorator pattern here? 2) does the base Widget class need to be doing all of that work?

omlette-a-gogo
May 26, 2010

hayden. posted:

If anyone has some websites/resources that explain why I need the MySQL Connector, I'd appreciate it. I don't really understand how all this stuff interacts.

Java provides an abstract layer for dealing with databases and database objects (tables, result sets, etc) in the javax.sql package. The idea is to use the same set of classes for all databases, so your code is portable. This is good if you might ever want to switch out MySQL for some other database at some point in the future without worrying about rewriting your code too much.

The purpose of MySQL Connector is to translate operations on javax.sql objects in your code to the right commands to the MySQL server to make it do what you want. If you switch to MSSQL or something else, you would rebuild with a different connector, but keep your code (more or less) the same. Let the connector deal with the peculiarities of each individual database and focus on managing your data.

Note this bit:

Class.forName ("com.mysql.jdbc.Driver").newInstance ();

On the surface it is kind of strange, as the new object that gets created doesn't get assigned to anything, you might think it will just get garbage collected without actually doing anything. But it has the side effect of registering the class "com.mysql.jdbc.Driver" with the JDBC driver manager, and when you request a connection with the URL "jdbc:mysql://somedomain.com" the driver manager knows to use this class to handle the connection.

dividertabs
Oct 1, 2004

I have a project in Eclipse with a handwritten GUI but I'd like to switch to using my IDE to build it. What's the best plugin for this? Should I move it to Netbeans instead?
(and I assume that I'll have to delete the GUI class and built it in the tool from scratch?)

Your Computer
Oct 3, 2008




Grimey Drawer

dividertabs posted:

I have a project in Eclipse with a handwritten GUI but I'd like to switch to using my IDE to build it. What's the best plugin for this? Should I move it to Netbeans instead?
(and I assume that I'll have to delete the GUI class and built it in the tool from scratch?)

I'd like to know about this as well. I switched to Netbeans because I just couldn't get Eclipse to do it nicely, while Netbeans was very easy to use. Now I use Netbeans for everything, but I sorta liked Eclipse v :) v

Paolomania
Apr 26, 2006

I'm pretty sure that NetBeans is king of the hill with Java GUI building, but if you want to use Eclipse there is the Visual Editor Project which can help you build GUI apps from a variety of frameworks (including Swing). Its a bit clunky but it has alot of functionality.

TagUrIt
Jan 24, 2007
Freaking Awesome
Out of curiosity, why are you going from hand-coded to IDE-generated? I've poked around with Netbeans' editor before, but it takes so much fiddling around to make certain things work correctly (window resizing, font size changing, etc) that it isn't worth the time for me.

Boz0r
Sep 7, 2006
The Rocketship in action.
if I have a switch where several of the cases do the same thing, is there some nifty way to avoid duplicate code?

EDIT: VVVVV Cool, thanks

Boz0r fucked around with this message at 22:45 on Oct 31, 2010

Paolomania
Apr 26, 2006

As with other languages, a case will fall-through if there is not an explicit break. So what you want to do looks like:

code:
case 1:
case 2:
case 3:

   // do stuff
   break;

Kilson
Jan 16, 2003

I EAT LITTLE CHILDREN FOR BREAKFAST !!11!!1!!!!111!

Paolomania posted:

As with other languages ...

C# has no fallthrough, and requires an explicit break, even for the default case. However, you can goto another case. :eng101:

Shavnir
Apr 5, 2005

A MAN'S DREAM CAN NEVER DIE

Kilson posted:

C# has no fallthrough, and requires an explicit break, even for the default case. However, you can goto another case. :eng101:

Its this way in Ada as well, except the compiler just about comes out and kicks you in the balls if you use a goto. :eng101:

Kilson
Jan 16, 2003

I EAT LITTLE CHILDREN FOR BREAKFAST !!11!!1!!!!111!

Shavnir posted:

Its this way in Ada as well, except the compiler just about comes out and kicks you in the balls if you use a goto. :eng101:

That's probably good. Everyone knows COME FROM is way better than silly goto anyway.

Mustach
Mar 2, 2003

In this long line, there's been some real strange genes. You've got 'em all, with some extras thrown in.

Kilson posted:

C# has no fallthrough, and requires an explicit break, even for the default case. However, you can goto another case. :eng101:
It has fallthrough in exactly the situation illustrated by Paolomania: a case label followed immediately by another.

Paolomania
Apr 26, 2006

If you guys want to pedantic, LISP cond and case statements have no fall-through, but in those situations you can use more complicated predicates for your conditions and lists of values for your cases, respectively.

dividertabs
Oct 1, 2004

TagUrIt posted:

Out of curiosity, why are you going from hand-coded to IDE-generated? I've poked around with Netbeans' editor before, but it takes so much fiddling around to make certain things work correctly (window resizing, font size changing, etc) that it isn't worth the time for me.

It seemed easier to just design a GUI with a GUI, but after making a toy app in NetBeans and being unable to set a JSplitPanel the way I wanted, I think I'm going to stay with Eclipse and hand-coding. I had assumed most people used software to design GUIs; do most people actually do it by hand?

Chairman Steve
Mar 9, 2007
Whiter than sour cream
I do. I used to use JDeveloper (*shudder*) to do Swing editing using a GUI-based designer, and it...wasn't the best.

Riff
Oct 2, 2005

...
Hi, was wondering if any of you could help me with a bit of a problem.

I've got an array of 10 ints, lets say 0000000001. I want to take that array, turn it into a normal int and increment it. Then I want to convert that back into an array. My array would then be 0000000002. I'm struggling to work out a way of doing it. Heres what I have so far,

code:
   int[] array = new int[10];
        int anInt;
        array[9] = 1;
        String s = "";
       
        //Converts int array into a string
    
        for (int i = 0; i < 10; i++) {
            s = s + array[i];
        }

        //Converts string into an int and increments
        //Doesn't work as 0000000001 is changed to 1
        
        anInt = Integer.parseInt(s);
        anInt++;
        
As I mention in the comments it doesn't work as when you convert a string like 0001 to an int it becomes just 1.

Riff fucked around with this message at 13:57 on Nov 4, 2010

Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."
Riff: so, what you want is to take an array of ints, sum it, increment the sum and produce a new array of the same size with that sum as the last value? This doesn't require any string manipulation.

code:
int[] original = {0,0,0,0,0,0,0,0,0,1};

int sum = 0;
for(int i : original) {
    sum += i;
}
sum++;

int[] updated = new int[original.length];
updated[updated.length - 1] = sum;
If what you're really trying to do is more like arbitrary-precision arithmetic, in which digits are each stored in each array entry, there are much better approaches than what you describe. First look into base conversion.

Internet Janitor fucked around with this message at 14:00 on Nov 4, 2010

Malloc Voidstar
May 7, 2007

Fuck the cowboys. Unf. Fuck em hard.

Riff posted:

Hi, was wondering if any of you could help me with a bit of a problem.

I've got an array of 10 ints, lets say 0000000001. I want to take that array, turn it into a normal int and increment it. Then I want to convert that back into an array. My array would then be 0000000002. I'm struggling to work out a way of doing it. Heres what I have so far,

As I mention in the comments it doesn't work as when you convert a string like 0001 to an int it becomes just 1.
Could you post why you want to do it like this? I assume you have a reason for wanting "0000000002" instead of "2". It'll be easier to help you find a solution if we know why you're doing what you're doing.


Derail: By the way, Strings are immutable. Don't assign a string like that in a for loop, it's exceptionally slow. As in:

See: FindBugs#Method concatenates strings using + in a loop

trex eaterofcadrs
Jun 17, 2005
My lack of understanding is only exceeded by my lack of concern.

Aleksei Vasiliev posted:

Could you post why you want to do it like this? I assume you have a reason for wanting "0000000002" instead of "2". It'll be easier to help you find a solution if we know why you're doing what you're doing.


Derail: By the way, Strings are immutable. Don't assign a string like that in a for loop, it's exceptionally slow. As in:

See: FindBugs#Method concatenates strings using + in a loop

I thought javac was smart enough to recognize this and fix it, however:
code:
public class Strings {
    public static void main(String [] args) {
        String s = "";
        for (int i = 0; i < 65535; i++) {
            s += i + " ";
        }
        System.out.println(s);
    }
}
Produces this byte code:
code:
public static void main(java.lang.String[]);
  Code:
   0:	ldc	#2; //String 
   2:	astore_1
   3:	iconst_0
   4:	istore_2
   5:	iload_2
   6:	ldc	#3; //int 65535
   8:	if_icmpge	41
   11:	new	#4; //class java/lang/StringBuilder
   14:	dup
   15:	invokespecial	#5; //Method java/lang/StringBuilder."<init>":()V
   18:	aload_1
   19:	invokevirtual	#6; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
   22:	iload_2
   23:	invokevirtual	#7; //Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
   26:	ldc	#8; //String  
   28:	invokevirtual	#6; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
   31:	invokevirtual	#9; //Method java/lang/StringBuilder.toString:()Ljava/lang/String;
   34:	astore_1
   35:	iinc	2, 1
   38:	goto	5
   41:	getstatic	#10; //Field java/lang/System.out:Ljava/io/PrintStream;
   44:	aload_1
   45:	invokevirtual	#11; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
   48:	return
You can see the StringBuilder doing the heavy lifting in there. But it's putting the resultant String back on the stack in order to make a new StringBuilder the next time around. I don't know if HotSpot would have eventually fixed this (doubtful) or if enabling escape analysis would have helped (possible).

zootm
Aug 8, 2006

We used to be better friends.

TRex EaterofCars posted:

I thought javac was smart enough to recognize this and fix it, however:
code:
public class Strings {
    public static void main(String [] args) {
        String s = "";
        for (int i = 0; i < 65535; i++) {
            s += i + " ";
        }
        System.out.println(s);
    }
}
Produces this byte code:
code:
public static void main(java.lang.String[]);
  Code:
   0:	ldc	#2; //String 
   2:	astore_1
   3:	iconst_0
   4:	istore_2
   5:	iload_2
   6:	ldc	#3; //int 65535
   8:	if_icmpge	41
   11:	new	#4; //class java/lang/StringBuilder
   14:	dup
   15:	invokespecial	#5; //Method java/lang/StringBuilder."<init>":()V
   18:	aload_1
   19:	invokevirtual	#6; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
   22:	iload_2
   23:	invokevirtual	#7; //Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
   26:	ldc	#8; //String  
   28:	invokevirtual	#6; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
   31:	invokevirtual	#9; //Method java/lang/StringBuilder.toString:()Ljava/lang/String;
   34:	astore_1
   35:	iinc	2, 1
   38:	goto	5
   41:	getstatic	#10; //Field java/lang/System.out:Ljava/io/PrintStream;
   44:	aload_1
   45:	invokevirtual	#11; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
   48:	return
You can see the StringBuilder doing the heavy lifting in there. But it's putting the resultant String back on the stack in order to make a new StringBuilder the next time around. I don't know if HotSpot would have eventually fixed this (doubtful) or if enabling escape analysis would have helped (possible).
javac can't fix it because you assign it back to the String-type variable which it's required to create (although inline concatenations get turned into a single StringBuilder call, which is what you're seeing and very handy), and HotSpot doesn't generally fix that one.

Escape analysis is an interesting point, since all those strings wouldn't end up on the heap which might make it work -- good point. That feature helps with a few common patterns in Scala that I've seen as well.

Riff
Oct 2, 2005

...
Hi thanks for the replies, sorry if I haven't been very clear. I'm working on generating error correcting codes (specifically BCH). I want to generate a series of codes based on a user input.

If the first number entered is 000000009 then this number goes into the system, the generated code comes out and this original number is incremented by 1 (so it is now 0000000010) this is then looped back into the system to generate another code and so on. It has to be in this format because some of the code includes things like

d[6] = ((4 * d[0]) + (10 * d[1]) + (9 * d[2]) + (2 * d[3]) + d[4] + (7 * d[5])) % 11;

As far as I can see the only way to do it is going to be to create a set of IF statements that checks to see if the point being incremented is 9 if it is then set that one to zero and increment the next array point along.

Riff fucked around with this message at 15:30 on Nov 4, 2010

Jonnty
Aug 2, 2007

The enemy has become a flaming star!

Riff posted:

Hi thanks for the replies, sorry if I haven't been very clear. I'm working on generating error correcting codes (specifically BCH). I want to generate a series of codes based on a user input.

If the first number entered is 000000009 then this number goes into the system, the generated code comes out and this original number is incremented by 1 (so it is now 0000000010) this is then looped back into the system to generate another code and so on. It has to be in this format because some of the code includes things like

d[6] = ((4 * d[0]) + (10 * d[1]) + (9 * d[2]) + (2 * d[3]) + d[4] + (7 * d[5])) % 11;

As far as I can see the only way to do it is going to be to create a set of IF statements that checks to see if the point being incremented is 9 if it is then set that one to zero and increment the next array point along.

There might be a more efficient way, but i'd just loop through the list multiplying every number by successive powers of ten and adding them to the number variable, increment the number variable, and convert it back.

EDIT: or, loop through the array from the small end until you find a nonzero number. If it's less than 9, increment it. If it's a 9, change it to a 0, change the previous number to a 1 and continue to to loop through the array, changing 9s to 0s, until you find a number that isn't a 9.

Jonnty fucked around with this message at 15:46 on Nov 4, 2010

Sereri
Sep 30, 2008

awwwrigami

Use a string, parse it into an integer, increase it by one, convert it back into a String ( = ""+ number;) check length and fill the missing digits with zeros.

Jonnty
Aug 2, 2007

The enemy has become a flaming star!

Sereri posted:

Use a string, parse it into an integer, increase it by one, convert it back into a String ( = ""+ number;) check length and fill the missing digits with zeros.

If you do it this way, you can use String.format() or something similar for the padding.

Riff
Oct 2, 2005

...
Thanks everyone, these all seem like much neater solutions than this monstrosity.

code:
   int[] array = new int[6];
        int i, o;
        for (o = 0; o < 10; o++) {

            if (array[5] < 9) {
                array[5] = array[5] + 1;
            } else {
                array[5] = 0;
                if (array[4] < 9) {
                    array[4] = array[4] + 1;
                } else {
                    array[4] = 0;
                    if (array[3] < 9) {
                        array[3] = array[3] + 1;
                    } else {
                        array[3] = 0;
                        if (array[2] < 9) {
                            array[2] = array[2] + 1;
                        } else {
                            array[2] = 0;
                            if (array[1] < 9) {
                                array[1] = array[1] + 1;
                            } else {
                                array[1] = 0;
                                if (array[0] < 9) {
                                    array[0] = array[0] + 1;
                                } else {
                                    for (i = 0; i < 6; i++) {
                                        array[i] = 0;
                                    }
                                }
                            }
                        }
                    }
                }
            }

            for (i = 0; i < 6; i++) {
                System.out.print(array[i]);
            }
            System.out.println("");
        }

Malloc Voidstar
May 7, 2007

Fuck the cowboys. Unf. Fuck em hard.
nooooooooooooooooooooooooooooooooooooo


gonna go find some code of mine to refactor to get that out of my head

chippy
Aug 16, 2006

OK I DON'T GET IT
gently caress me, I wasn't expecting that.

trex eaterofcadrs
Jun 17, 2005
My lack of understanding is only exceeded by my lack of concern.
BigInteger will probably do what you want, it is backed by a byte array and does all the fun math bullshit for you. It'll even give you the byte array when you're done so you can do your wizardry on it.

Mr. DNA
Aug 9, 2004

Megatronics?
Can anyone give me some suggestions for good resources to learn how to program GUI apps with Java using a text editor and command line compiler? I find diving into an IDE overwhelming.

In case it helps your suggestion, here's a summary of my programming experience:
  • I took an Intro to Programming course in university which used C++. I became familiar with the basic concepts behind OO programming.
  • I took an Algorithms class that used C. Wrote many text apps to solve all sorts of problems.
  • I sporadically programmed PIC microcontrollers in C over the last 4 years.

I've already looked over the "Trail: Learning the Java Language" guide at oracle.com and I feel like I have a handle on the language. However, I find if I read the Swing guide there, I get lost in a sea of unfamiliar classes and terminology.

Thanks for any help!

Chairman Steve
Mar 9, 2007
Whiter than sour cream
Step 1 would be to not use a text editor and use an IDE. There are so many different objects you'll use in GUI programming that it'll be more of a headache than it's worth to manage your imports, not to mention other benefits of using an IDE. Trust me - when I studied Java in college, my TAs and professor were adamantly opposed to using IDEs, and I hate them every day for it.

This article[1] seems to have a good intro to Swing.

As for IDEs, I use Eclipse. I can't speak to other IDEs, but Eclipse does what I need to do and it does it well enough, from what I can tell. You mentioned that diving into an IDE can be overwhelming; that's true of Eclipse. The first thing you do when you start up Eclipse is to close the drat welcome screen, because that thing's useless. This PDF[2] speaks to an old version of the IDE, but it looks like most of the workflows are still applicable. If you're feeling adventurous, I'd recommend also looking into Maven[3].

If anyone tells you to bypass Swing and use something like RCP, politely tell them that you're just starting to learn how to program in Java and that trying to wrap your head around OSGI, classloaders, fragments, and bundling would just be a total mindrape.

1. http://www.javabeginner.com/java-swing/java-swing-tutorial
2. http://cs.armstrong.edu/liang/intro5e/SupplementJEclipse.pdf
3. http://maven.apache.org/

geeves
Sep 16, 2004

Anyone take the IKM tests for Java? Reasonable or should I brush up on obscure stuff?

tef
May 30, 2004

-> some l-system crap ->

Riff posted:

Hi, was wondering if any of you could help me with a bit of a problem.

I've got an array of 10 ints, lets say 0000000001. I want to take that array, turn it into a normal int and increment it. Then I want to convert that back into an array. My array would then be 0000000002.

Hurp a durp a durp

Is counting really this hard? Seriously?

you call incrementArray(new int[] {0,0,0,1}, 10, 1) to add 1 to this array in base 10.

code:
int[] static incrementArray(int[] array, int base, int increment) {
  int carry = increment;
  int[] out = Arrays.copyOf(array, array.length);
  for (int i = array.length-1; carry != 0 && i >=0; i--) {
      out[i]+=carry
      if (out[i] >= base) {
        int a = out[i]%base;
        carry=(out[i]-a)/base;
        out[i]=a;
     } else {
        carry =0;
        break;
     }
  }
  if (carry > 0 {
     // oh no the array is too small and everything is broken, throw an error or wrap around ?
  } else {
    return out;
}
hurp

this is completely untested but it should work better than adding one to a number by converting it to a string.

durp


if you said 'convert it to a string' you should be ashamed of yourself.

:ugh:


pps it works for any increment >=0

tef fucked around with this message at 05:27 on Nov 5, 2010

Malloc Voidstar
May 7, 2007

Fuck the cowboys. Unf. Fuck em hard.

Mr. DNA posted:

Can anyone give me some suggestions for good resources to learn how to program GUI apps with Java using a text editor and command line compiler? I find diving into an IDE overwhelming.
use an IDE like Eclipse. i handcode SWT GUIs in it. I treat it like a text editor that can compile, tell me of my errors while I'm making them, and other stuff. You don't really need to know much to use Eclipse. just do File > New > Java Project, then File > New > Class.

tef
May 30, 2004

-> some l-system crap ->

Mr. DNA posted:

Can anyone give me some suggestions for good resources to learn how to program GUI apps with Java using a text editor and command line compiler? I find diving into an IDE overwhelming.

(Java) gui toolkits are a miriad of pain and suffering. I can't recommend SWT to anyone, not even the brain damaged (Another cross platform library that needs to be wrapped to be cross platform, for example: tooltips and sliders work significantly differently).

quote:

Thanks for any help!

Writing Java demands an IDE to deal with the level of complexity in modern frameworks and toolkits. Writing java in a barebones environment will drive you insane. (much, much quicker than working in eclipse will)

You might find it easier to start with something simpler and pedagogical to learn GUI programming, like Tcl/Tk, or writing a web app in one of the myriad frameworks (i'd recommend python+django fwiw).

tef
May 30, 2004

-> some l-system crap ->

Aleksei Vasiliev posted:

use an IDE like Eclipse. i handcode SWT GUIs in it. I treat it like a text editor that can compile, tell me of my errors while I'm making them, and other stuff. You don't really need to know much to use Eclipse. just do File > New > Java Project, then File > New > Class.

Also, File > Restart Eclipse.

Although I never get to use it because it just seizes up and locks.

Adbot
ADBOT LOVES YOU

Malloc Voidstar
May 7, 2007

Fuck the cowboys. Unf. Fuck em hard.

tef posted:

(Java) gui toolkits are a miriad of pain and suffering. I can't recommend SWT to anyone, not even the brain damaged (Another cross platform library that needs to be wrapped to be cross platform, for example: tooltips and sliders work significantly differently).
it works great if you're coding a windows-only app



thus defeating the point of java

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply